Open-source course engine

Build an interactive
course on anything

Most courses teach in the abstract. Create one built around your goal — Go for CLI tools, Rust for a game engine, Python for your data pipeline. Tell your AI coding tool what to teach. One build command does the rest.

terminal
$ git clone https://github.com/jmilne22/vibe-learn
$ npm run new-course -- python
$ claude "Create a Python course for JS developers"
$ npm run build
# Course ready at dist/python/
How it works
1
Scaffold
One command creates the course directory with the right structure.
npm run new-course -- python
2
Generate
Point your AI tool at the starter prompt. It writes lessons, exercises, flashcards.
claude "Create a Python course"
3
Build & Ship
One command compiles everything into a static site. Deploy anywhere.
npm run build
Built with vibe-learn
Infrastructure Development with Go
From DevOps engineer to infrastructure developer. Build real infra tools, nail Go fundamentals under pressure, and ace technical interviews. 14 modules, 5 projects, algorithms throughout.
13 modules · ~10-20 hours
Sample Course
A starter template demonstrating every platform feature. Fork this as a base for your own course.
Template
3 modules · ~2-4 hours
What you get
>_
Lessons & code comparisons
Markdown with syntax highlighting and side-by-side code comparisons. Show the same concept in two languages.
[ ]
Exercises & challenges
Warmups, challenges, multiple variants, difficulty modes, progressive hints, and annotated solutions.
SRS
Spaced repetition & flashcards
SM-2 scheduling surfaces exercises and flashcards when you're about to forget. Review, discover, and weak-spot modes.
|||
Analytics & progress
Mastery dashboard with health cards, heatmaps, streaks, action items, and full data export. All local, no accounts.

Content files drive features — no registries, no config files, no wiring. Drop files in the right place and the build figures out the rest.

Drop a course folder — it appears on the site
The build scans courses/ for any directory with a course.yaml. Add a folder, rebuild, done.
courses/python/ + course.yaml → auto-discovered
Add a content file — the feature activates
Each plugin declares a content pattern. If a course has matching files, it gets the feature. No files? No dead links.
content/flashcards/flashcards.yaml → flashcards page active
Start building your course

Works with Claude Code, Cursor, Copilot, Augment, or any AI coding tool.
See STARTER_PROMPT.md to get started.

Fork on GitHub