Behind every course is a small loop: figure out what the learner knows, decide what comes next, bring back what's fading, and ask them to use it. Nothing dramatic. Just done well, lesson after lesson.
A calibration that doesn't feel like a test.
A path through the course, just for you.
Recall, spaced to where forgetting begins.
A real project, not a multiple choice.
Most courses start at lesson one. We start with a short calibration — a handful of small questions, a tiny build, a couple of recall prompts. It's not graded. We just need a baseline so we don't waste the next ten weeks of your time.
const r = Promise.resolve(2) .then(x => x + 1) .then(x => x * 2); console.log(r);
Once we know roughly where you are, the engine sequences the lessons that follow. It skims familiar territory, branches into prerequisite refreshers when needed, and adds depth on the parts that connect to your goal.
We track every concept you've touched against the curve of forgetting — and resurface it at the moment recall is hardest, but still possible. Each session opens with a tiny recall block. It feels effortless. It does the heavy lifting.
useReducer give you that useState doesn't?Watching is not learning. Each module hands you a small, self-contained build that uses the concepts you just covered. By the end of the course, you have a public capstone with mentor notes attached.
Your dashboard is intentionally calm. One day, three blocks, your mastery line, and the choice to do more or stop. That's it.
None of this is new science. It's just rarely been done at scale, because doing it by hand for every learner is impossible. We're the bit in the middle.
Recalling — not re-reading — is what consolidates memory. Roediger & Karpicke, 2006.
How we use it: A two-minute recall block opens every session, drawn from the concepts your forgetting model says are most at risk.
Concepts revisited at expanding intervals stick longer. Ebbinghaus, 1885 onward.
How we use it: Each concept gets an individual review schedule — adjusted live by your performance.
Learners progress fastest when challenges sit just above current ability. Bjork, 1994.
How we use it: The engine tunes question difficulty live, aiming for a ~75% success rate — hard enough to learn, easy enough to stay.
Mixing related topics beats blocking them, for long-term mastery. Rohrer, 2012.
How we use it: Recall blocks mix topics from the last 30 days — not just the lesson you finished.
Show the full solution, then progressively remove the scaffolding. Sweller, 1985.
How we use it: Code lessons walk you through, then ask you to fill in shrinking gaps, then write fresh.
Knowledge sticks when it's used in a realistic, non-trivial context. Mayer, 2002.
How we use it: Every module ends with a project that's structurally similar to industry work — not a sandbox toy.
Take the 15-minute calibration. No account required. We'll show you the path it would build — and you can decide.