All projects

Express Academy

2026

An 18-day interactive Express.js bootcamp where every exercise is auto-graded by a real test harness — in JavaScript or TypeScript, your pick.

ExpressTypeScriptReactVitenpm workspacesesbuildtsc LanguageServiceDocker
Express Academy

The problem

As a frontend developer learning backend properly, I kept hitting the same wall with tutorials: watching someone else write servers doesn't build the muscle. I wanted a course that behaves like a strict code reviewer — you write the handler, it runs real requests against your code and tells you exactly what failed.

So the course is a grader-first platform: 18 days of lessons, each with exercises that a local grading server executes and scores.

Architecture

It's an npm-workspaces monorepo: a React/Vite course UI, an Express grading server, and a shared package of exercise specs. Your submission is loaded into a sandboxed child process, the grader boots it as a live Express app, then fires declarative test specs at it — method, path, expected status, JSON assertions, header checks.

Every exercise ships in both JavaScript and TypeScript, with separate starters, solutions, and saved code per language. TypeScript submissions get transpiled with esbuild for speed, but they're also type-checked with strict tsc first — a warm LanguageService keeps that under ~50ms — and type errors block the run, just like CI would.

The later days needed the grader to grow: timing-sensitive specs (delayMs, typed variable capture between steps) test background job queues and cron behavior, and per-exercise environment injection tests 12-factor config handling.

Decisions and trade-offs

Days are sequentially gated — locked days return 403 and deep links redirect to your frontier. That was a deliberate request-to-self: no skipping ahead to the fun parts before the fundamentals stick.

External services are simulated in-process: day 15's Redis is a fake-Redis client, day 16's job queue is homegrown. Zero-setup grading beat realism — nobody abandons a course because they learned on a fake Redis, but plenty abandon one because Docker Compose wouldn't start.

The capstone arc builds a complete Notes API over four days, then days 15–18 ("Beyond the Request") cover caching, background jobs, cron with graceful shutdown, and Docker — the things that separate toy servers from production ones.

Outcome

28 reference solutions, 87 behavior tests, each passing in both languages — validated by a single npm run check quality gate that also asserts all TypeScript reference code is strict-clean. It has a sibling: FastAPI Academy, the same platform rebuilt for Python with a databases arc (raw SQL with an injection test, SQLAlchemy, MongoDB) and 116 passing tests.