00 / Frontend
Learn the debugger, React and the real browsergraded by the real tools
The bug is in DevTools either way - 165 lessons graded by the real browser debugger and your own test runner.
Early access
01 / what grades you
Grading runs the real tools the job actually uses, in the copy of VS Code you already have open - not a simulated sandbox and not a recording.
When a lesson says PASSED, that verdict came from the real debugger, the real test runner, or a real service running on your machine.
PROOF 148 lessons verified stub-fails-solution-passes, 0 failures; the other 17 are guided browser and observation lessons, skipped by design, not by accident
02 / the free tier
22 free lessons, forever
No account. No card.. the free tier makes zero network calls, answers ship encoded and are released one failed attempt at a time, and your progress is a local file you can read and delete. no accounts, no telemetry, no subscription.
03 / syllabus
Lesson 1 of 22 free. Opens in your own VS Code - free forever.
Store not yet open What to expect on your machine
165 lessons across 8 tracks
Debugging with DevTools
The elements panelFREE/Your first breakpointFREE/Stepping through codeFREE/Reading the call stackFREE/Sources and pretty-printFREE/Conditional breakpointsFREE/Watch expressionsFREE/DOM breakpointsFREE/Event listener breakpoints/The network tab/Reading requests/CORS in the wild/Console beyond log/Recording performance/The long task/Memory snapshots/The detached nodes/Lighthouse/Code coverage/The layout thrash/Async stacks/A race in the UI/The vanishing click/The third-party slowdown/Capstone: the janky dashboard
JavaScript and TypeScript
Values and typesFREE/let, const and scopeFREE/Functions and arrows/Objects/Arrays properly/Destructuring/Template literals/Closures/this, honestly/Prototypes to classes/Modules/The event loop/Promises/async and await/Web Workers/Error handling/Iterators and generators/map, filter, reduce/Sets and Maps/Immutability patterns/JSON/Dates/Enough regex/TypeScript: first types/Interfaces and type aliases/Unions and narrowing/Generics/Utility types/unknown vs any/Strict mode payoffs/The config that matters
Git
Your first repositoryFREE/The three areasFREE/Commits done well/Ignoring the right things/Branching/Two kinds of merge/The conflict/Branch lifecycle/Amend/Rebase onto a moved main/Squash and fixup/Reword, reorder, drop/Cherry-pick and revert/Reflog, the undo of undos/Reset: soft, mixed, hard/Stash/Bisect/Remotes: clone, fetch, pull, push/Pull with rebase/Force with lease, and tags/The feature workflow/Capstone: inherit the mess/What a commit really is/Trees, blobs and refs/The index unmasked/Submodules without tears/Worktrees/Large files and history bloat/Attributes that save releases/Hooks that guard the gate/Signed work/Rebase with a robot/Autosquash discipline/The reverted merge trap/Detached HEAD, no fear/Archaeology/Capstone: the inherited repo
Testing
Vitest: the first testFREE/Testing componentsFREE/Testing hooks/user-event/Mocking fetch/Mock Service Worker/Snapshot honesty/Playwright: first end-to-end/Selectors that last/Auth flows end-to-end/Accessibility checks: axe in CI/Flaky tests/Capstone: catch the bugs
HTML and CSS
Semantic HTMLFREE/Forms properlyFREE/The box model/Flexbox/Grid/Positioning/Responsive design/Media queries/Units/Custom properties/Cascade and specificity/Pseudo-classes/Transitions/Animations/Accessibility: landmarks/Accessibility: focus/WCAG in practice: ARIA when needed/Typography on the web/Dark mode/The component mindset
Talking to APIs
fetch basicsFREE/Promises in angerFREE/Error states/Loading UX/Auth tokens/Storage: cookies, localStorage, and when/Refresh flows/Pagination/XSS: escaping what you render/The flaky network
React
Your first componentFREE/PropsFREE/State/Events/Conditional rendering/Lists and keys/Forms/Lifting state/Effects done right/Effect cleanup/Refs/Context/Custom hooks/The rendering model/Memoization, honestly/Error boundaries/Data fetching patterns/Capstone: the dashboard
Tooling and shipping
npm scriptsFREE/Node basicsFREE/Vite/Reading a webpack config/Environment variables/Bundling/Linting/Formatting/CI basics/Preview deploys/Shipping
04 / how it grades you
Do the work
Open the lesson in VS Code and write the fix, the query, or the test - in your own editor, with your own tools.
The real tool checks it
The debugger, the test runner, or the real service your code talks to decides pass or fail - not a string match on your keystrokes.
Hints, then the solution
Stuck lessons escalate through hints before the reference solution unlocks - spoilers are earned, not browsable.
05 / your machine
What to expect on your machine
By track, per operating system
| Track | Windows | macOS | Linux |
|---|---|---|---|
| All 165 lessons | 165/165 | 165/165 | 165/165 |
transcribed from the product's delivery board (run 30275405905), 2026-08-29
curriculum lessons; the one-lesson First Run track is not counted on this site
CI-proven Windows
the full 165-lesson gate is CI-green on all three operating systems - Windows, macOS and Linux - and hand-proven on real Windows hardware.
CI-proven, hand pass pending macOS
macOS goes on sale the moment it passes on real Apple hardware, not a day sooner.
CI-proven Linux / WSL
the full 165-lesson gate is CI-green on all three operating systems - Windows, macOS and Linux.
Store not yet open 22 free lessons are ready right now.
06 / receipts
Receipts
Receipts are claims paired with evidence. The changelog carries the dated record.
PASS every gradeable lesson carries a CI solvability proof148 lessons verified stub-fails-solution-passes, 0 failures; the other 17 are guided browser and observation lessons, skipped by design, not by accident
PASS the debugger is the headline, and it is real25 debugging lessons on the built-in js-debug engine and Chrome DevTools; 8 of them free, the largest free block in the extension
PASS the toolchain needs almost nothingNode 22's built-in test runner grades JS and TS with zero dependencies; the JS debugger ships inside VS Code - no extra extension to install
PASS answers are earned, never browsablesolutions, explanations and hints ship encoded; the coach releases them one failed attempt at a time
PASS the paid edition is encrypted, and the whole encrypted path is CI-proventhe full curriculum ships as an encrypted pack that only unlocks under your licence; CI walks every one of the 143 paid lessons the way a buyer would - decrypt, grade, done - on Windows, macOS and Linux
PASS guided first run from a cold installa Start-here Lesson 0, an activation check that names any missing tool, a VS Code walkthrough and a one-click Prepare sandbox button
PASS your progress is a file you ownno account - export it and import it from the Command Palette when you change machines
PASS zero minutes of videonothing to watch; everything to do