85 interactive lessons · free
Learn backend frameworks by writing the backend.
Not videos. Not snippets to copy. Every lesson is an exercise you complete in a real editor, and it is graded by sending real requests to the server you just wrote, running in this tab.
Nothing to install and nothing to sign up for. Your progress and your code stay in this browser.
- lessons
- 85
- frameworks
- 2
- courses
- 9
- install steps
- 0
- price
- free
- runs in
- your browser
Curriculum
85 lessons across 9 courses. Start anywhere.
NestJS
Build a real backend for NestJS in your browser: modules, controllers, providers, dependency injection, pipes, guards and interceptors, graded by calling your endpoints.
Hono
Build a web API for Hono in your browser: routing, the context, middleware, validation, errors, cookies and streaming, on the same fetch handler you would deploy to Cloudflare Workers, Bun, Deno or Node, graded by calling your routes.
Why this beats reading the docs
- runtime
- A real server, not a simulation. The framework you are learning is the published package, compiled and booted in a worker in your tab, answering real requests.
- grading
- Every exercise declares the requests that must pass and what each one proves. Write the code, press Run, and be told exactly which response was wrong.
- errors
- You get the framework’s own messages. A missing provider fails with the dependency error you would see from the CLI, on the line you wrote.
- types
- The editor type-checks against the real declarations, so a type error blocks Run the way a build would. No lesson can be passed with code that would not compile.
- setup
- None. No Node install, no package manager, no version conflicts. Open a lesson and the runtime is already there.
- projects
- Lessons grow one application across a whole course, with modules, a database, tests and authentication, rather than restarting from a snippet each time.
How it works
1. Write
A lesson opens as a small project across several files, with the editor and its type checking already knowing the framework's declarations.
2. Run
Your code is compiled in the tab and the application boots in a worker, printing the same startup log it would print in a terminal.
3. Be graded
Requests go to your running server and the responses are checked. Some lessons run your own tests instead, and grade the bugs they catch.