// the take
A free, Microsoft-maintained 12-week curriculum teaching vanilla JavaScript, HTML, and CSS to absolute beginners through five build-along projects: a terrarium UI, a typing game, a browser extension, a Canvas-based space shooter, and a banking app. It's for someone starting from zero who wants structured lessons plus something to actually show for it, not for anyone who already knows the basics.
The project-based structure is genuinely good pedagogy — each concept (closures, DOM manipulation, Canvas, local storage, routing) gets attached to a concrete deliverable instead of staying abstract, and the five projects escalate sensibly in complexity. Every lesson pairs a pre- and post-quiz with the material, which is a real (if simple) spaced-retention mechanism rather than just reading-and-hoping. It's actively maintained by a team with named authors per lesson rather than being a one-and-done dump, and the discussion forum plus Discord give beginners somewhere to get unstuck that isn't just GitHub issues.
It deliberately stops at vanilla JS/HTML/CSS — no npm, no bundler, no framework, no TypeScript — so a graduate still has a real gap before they're writing code that looks like a typical 2026 job's codebase; the curriculum punts that entirely to a separate Node.js video series. There's no testing taught anywhere in the five projects, so students never see unit tests, assertions, or a test runner, which is a strange omission for a course meant to produce job-ready habits. The quiz mechanic, which is half the stated pedagogy, depends on an externally hosted Netlify app (ff-quizzes) rather than anything in-repo, so that piece can silently rot or go down independent of the curriculum repo itself. Support is volunteer-moderated forum and Discord, not instructor-led, so a learner who gets stuck on something non-obvious (a browser extension manifest quirk, a Canvas rendering bug) has no guaranteed path to an answer.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →