Building offSchool: AI Adaptive Learning + Graphs
TL;DR
offSchool builds personalized study plans with spaced repetition and knowledge graphs on a Next.js + Go + Python stack. Here is the architecture.
offSchool is an AI adaptive learning platform I built that generates personalized study plans using spaced repetition and a topic knowledge graph. Next.js front end, Go services, Python ML workers. Here is the architecture and how the knowledge graph drives personalization.
The problem
Most ed-tech apps are linear: lesson 1, lesson 2, lesson 3. Real learning isn't linear — a student's gap in algebra blocks them on calculus. Generic curricula treat every learner identically.
offSchool builds a learner-specific plan based on what they actually know.
Architecture
| Layer | Tech |
|---|---|
| UI | Next.js, TypeScript |
| API | Go |
| Knowledge graph | PostgreSQL + recursive CTEs (same pattern as Context-Heavy) |
| ML workers | Python, sentence-transformers for content embedding |
| Spaced repetition | Custom scheduler (SM-2 derivative) |
| Storage | PostgreSQL + R2 for content |
How the graph drives personalization
Every topic is a node. Edges encode prerequisites. When a learner gets a question wrong, the system walks up the graph to find which prerequisite is shaky and schedules review on that — not on the failed topic itself.
This is the same recursive-CTE pattern I described in Building Context-Heavy. One database, semantic + graph + relational.
Spaced repetition
We use a SuperMemo SM-2 variant. After each answer, the next review date adjusts based on the difficulty rating + how long they took. Standard SR; the value comes from combining it with the graph.
Generative content (carefully)
LLMs write practice questions for less-common topics where curated content is thin. Every generated question is rated by users; low-rated questions are removed. The graph filters by quality before scheduling.
Where ed-tech burns founders
Content acquisition. Pre-generated quality content is the moat. AI helps but does not replace.
Distribution. Schools are slow. Direct-to-student requires distribution from day one.
Retention. Spaced repetition does not magically retain users. UX, motivation, social features all matter.
What I'd do differently
Start with a single subject and ace it before adding more. We spread too thin in the early MVP and the experience suffered.
FAQ
Q: Is offSchool live? A: It is in private beta.
Q: How does the knowledge graph stay accurate? A: A combination of curated edges (subject experts) plus learner outcome feedback that re-weights edge strength.
Q: Why combine graph and SR? A: The graph picks what to review; SR picks when. Together they answer "the right topic at the right time."
Built by Shihab Shahriar Antor. Related: Building QuantumSketch (the visual STEM engine). Hire me.
Written by
Shihab Shahriar Antor — AI Engineer & Founder of Shahriar Labs. Creator of LetX, QuantumSketch, and more.