The Node Data Developer Program

Learn to build for the web.

8 units · 38 lessons · 190 exercises. No account, no email, no paywall — and no upsell at the end. Progress is saved in this browser.

Lv 1 · Static XP

150 XP to Hydrated

0streak
5/5hearts
0/38done
Daily goal · 0/50 XPadjust →

Unit 1 · 292 XP

The Web, Actually

requests, responses, and what a browser really does

  1. 1

    Request and Response

    Describe what happens between typing a URL and seeing a page.

    5 ex
  2. Status Codes That Matter

    Finish the previous lesson to unlock

  3. Headers, Cookies, and Caching

    Finish the previous lesson to unlock

  4. How the Browser Renders

    Finish the previous lesson to unlock

Unit 2 · 366 XP

HTML & CSS That Holds Up

semantics, accessibility, and modern layout

  1. 1

    Semantic HTML

    Choose elements by meaning so assistive tech works for free.

    5 ex
  2. Forms That Work

    Finish the previous lesson to unlock

  3. The Box Model & Cascade

    Finish the previous lesson to unlock

  4. Flexbox & Grid

    Finish the previous lesson to unlock

  5. Responsive & Accessible

    Finish the previous lesson to unlock

Unit 3 · 533 XP

JavaScript for Real

values, functions, async, and the parts that bite

  1. 1

    Values, References, Types

    Predict when copying an object copies the data.

    5 ex
  2. Functions & Closures

    Finish the previous lesson to unlock

  3. Arrays & Objects, Fluently

    Finish the previous lesson to unlock

  4. Async, Promises, Await

    Finish the previous lesson to unlock

  5. Modules & Error Handling

    Finish the previous lesson to unlock

  6. Fetch & JSON

    Finish the previous lesson to unlock

Unit 4 · 286 XP

TypeScript, Lightly

just enough types to stop shipping the obvious bugs

  1. 1

    Types & Inference

    Let TypeScript infer, and annotate only where it helps.

    5 ex
  2. Unions & Narrowing

    Finish the previous lesson to unlock

  3. Generics Without Fear

    Finish the previous lesson to unlock

  4. Typing an API Client

    Finish the previous lesson to unlock

Unit 5 · 358 XP

React, the Mental Model

state, rendering, and when not to use an effect

  1. 1

    Components & Props

    Compose UI from functions that take data and return markup.

    5 ex
  2. State & Re-rendering

    Finish the previous lesson to unlock

  3. Effects, and Avoiding Them

    Finish the previous lesson to unlock

  4. Hooks & Composition

    Finish the previous lesson to unlock

  5. Lists, Forms & Feedback

    Finish the previous lesson to unlock

Unit 6 · 362 XP

Next.js & Shipping

server components, routing, caching, deploy

  1. 1

    The App Router

    Map URLs to files and understand the special filenames.

    5 ex
  2. Server & Client Components

    Finish the previous lesson to unlock

  3. Data Fetching & Caching

    Finish the previous lesson to unlock

  4. Route Handlers & Server Actions

    Finish the previous lesson to unlock

  5. Deploying & Environments

    Finish the previous lesson to unlock

Unit 7 · 377 XP

APIs, Auth & Webhooks

integrate a real platform without getting burned

  1. 1

    Reading an API Reference

    Find what you need in a reference and predict the response.

    5 ex
  2. API Keys & Scopes

    Finish the previous lesson to unlock

  3. Pagination, Rate Limits & Retries

    Finish the previous lesson to unlock

  4. Webhooks & Signature Verification

    Finish the previous lesson to unlock

  5. Metered Inference

    Finish the previous lesson to unlock

Unit 8 · 290 XP

Ship It

git, performance, debugging, security

  1. 1

    Git That Helps You

    Use branches, commits, and history as a debugging tool.

    5 ex
  2. Performance You Can Measure

    Finish the previous lesson to unlock

  3. Debugging Methodically

    Finish the previous lesson to unlock

  4. Security Basics

    Finish the previous lesson to unlock

There is one more unit. It unlocks when you've found every easter egg on this site.

see the hints →

Built by the Node Data team. Free forever, no strings — we'd just rather the next generation of developers were good.