Projects
Every tier closes with at least one project that combines what the tier taught. Each brief describes a scenario and required outcomes โ you decide how to build it, and the acceptance checks tell you when it's working.
Beginner tier
CLI Quiz or Habit Log
Build a small command-line program in Node โ either a quiz that scores a player, or a habit log that records daily entries โ that remembers state across runs.
Practices: Values, variables, and operators, Control flow, Functions and scope, Arrays and objects
Accessible Task Tracker
Build a browser-based task list โ add, complete, filter, and persist tasks โ that's fully usable by keyboard and screen reader, not just by mouse.
Practices: The browser and the DOM, Forms and events, Arrays and objects, localStorage
API Explorer
Build a browser app that fetches data from a public or local mock API, handles loading/empty/error states, and lets a user search and filter what comes back.
Practices: Async basics and fetching, Arrays and objects, The browser and the DOM
Intermediate tier
Modular Data Dashboard
Build a dashboard pulling from multiple APIs, with cancellation, cached state, URL-backed controls, and an accessible chart-or-table alternative.
Practices: Async JavaScript in depth, Browser application architecture, Testing and maintainability
Offline-First Reading List
Build a reading list that works offline, backed by IndexedDB and a service worker with a documented caching strategy.
Practices: Networking, storage, and workers, Browser application architecture
Node Data-Processing CLI
Build a tested command-line tool that transforms a data file, with a streaming option for large inputs and documented package structure.
Practices: Node.js and cross-runtime JavaScript, Testing and maintainability, Types, documentation, and package design
Advanced tier
Cross-Runtime Library
Design and ship a small library with a stable public API, conditional exports for browser/Node, a compatibility matrix, benchmarks, a threat model, and a documented release process.
Practices: Modules, packages, and supply-chain design, Engine behavior and performance engineering
Concurrent Processing System
Build a worker-based processing pipeline with bounded queues, cancellation, observability, and evidence from load and failure testing.
Practices: Concurrency, scheduling, and distributed effects, Architecture for large systems
Static Analysis or Codemod Tool
Build a small source-analysis tool or codemod with a real AST pipeline, actionable diagnostics, fixture-based tests, and documented limitations.
Practices: Advanced testing and verification, API and language-tool design
Legacy Modernization Dossier
Produce a complete modernization dossier for a coupled, hard-to-change codebase โ an architecture map, profiling evidence, a risk register, ADRs, and a staged, reversible migration plan.
Practices: Architecture for large systems, Security and isolation