DevLearn is an experimental self-hosted SaaS educational platform for learning modern IT technologies. It is designed for developers who want to study Java, Python, Machine Learning, Linux, data structures, design patterns, and related topics through structured lessons with interactive visual widgets.
Platform architecture
The entire platform runs on a single self-hosted server. Each service is containerised with Docker. Click on any component below to learn more about its role.
Click on any component to learn more
What the platform offers
Structured courses
Lessons are organised into domains, categories, and courses. Each lesson contains rich content: text, code blocks, callouts, tables, quizzes, and interactive diagrams.
Interactive widgets
Visual learning aids built into lessons — nested-ring diagrams, memory models, graph visualisations, pipelines, timelines, and more.
AI-powered search
A RAG-based search engine allows users to ask questions in natural language and receive answers grounded in the actual lesson content, with relevant widgets returned alongside the text.
Progress tracking
Users can mark lessons as completed or track quiz results. Favourites allow quick access to saved lessons.
Subscription model
Free lessons are available without registration. Full access to all content is provided via a subscription.
Technology stack
Backend
Kotlin · Spring Boot 3.4 · Java 21
Database
PostgreSQL 16 · pgvector (HNSW)
AI Framework
Spring AI 1.0.0-M6
Embeddings
mxbai-embed-large · 1024 dimensions
LLM
Llama 3.2 3B · via Ollama (self-hosted)
Frontend
Next.js 14 · React · TypeScript
Infrastructure
Docker · Nginx · Google Cloud
How AI search works (RAG pipeline)
Lesson content is split into semantic chunks and stored as 1024-dimensional vectors in PostgreSQL via the pgvector extension. When a user asks a question, the query is embedded using the same model, and the five most similar chunks are retrieved. These are passed as context to a locally running Llama 3.2 model which generates a text explanation. If a relevant interactive widget is found among the results, it is returned directly from the database — the LLM is not trusted to generate widget JSON.
Changelog
14.03.2026v1.2
AI search integrated
Added a RAG-based AI search feature. Lessons are split into semantic chunks and indexed as 1024-dimensional vectors using mxbai-embed-large via Ollama. Users can ask questions in natural language and receive text answers alongside interactive widgets fetched directly from the lesson database. The generation model is Llama 3.2 (3B), running fully self-hosted.
12.03.2026v1.0
First public release
Launched the first working version of the platform with 12 lessons covering Java fundamentals. Included structured lesson content with code blocks, callouts, tables, and interactive widgets. Google OAuth authentication, progress tracking, favourites, and a subscription model were available from day one. The platform was deployed to Google Cloud with Nginx, Docker, and a PostgreSQL database.
04.03.2026
Development started
Project kickoff. Initial architecture decisions: Kotlin + Spring Boot for the backend, Next.js for the frontend, PostgreSQL as the primary database.
⚠️ The entire infrastructure, including the AI search feature (Llama 3.2, 3B parameters) running on limited server hardware (2 vCores, 8 GB RAM). Response quality and speed may vary. A more capable model may be introduced as the project grows.