Altitude, from the hardware up

  • Hardware & OS
  • Engine
  • Runtime
  • Framework (runtime)
  • Framework (build)

Map shows a system's whole structure. Walkthrough follows one request or piece of data through it. Mission is one step of a campaign.

OS & hardware

5 entries

Linux

Hardware & storage

JavaScript & the Web platform

11 entries

Engine & execution

Binary data

Modules

  • Framework (build)
    ESM vs CommonJS

    Why a bundler can prove an ESM graph before running it, but has to execute CommonJS to find out.

    Also in Node.js › Modules · Comparisons & decisions

Browser APIs

  • Runtime
    fetch(), end to end

    From JavaScript through WebIDL and native C++ into Node.js streams, one block at a time.

    Also in Node.js › HTTP

  • Runtime
    fetch() to the wire

    The round trip: process model, CORS preflight, the two-stage await and what JavaScript is allowed to read.

  • Runtime
    Events: from interrupt to React

    One word smeared across five layers, from a hardware interrupt to React's batched handler.

    Also in React › Events

  • Runtime
    Inside the browser tab: the URL is your state

    push versus replace, URLSearchParams and why the URL should be the source of truth.

  • Runtime
    Two stream object models

    WHATWG's ReadableStream and Node's stream.Readable are not two spellings of one abstraction.

    Also in Node.js › Streams

Node.js

39 entries

Architecture

Modules

Event loop & dispatch

Bytes & Buffers

Events

Streams

File system

Sockets & networking

HTTP

  • Runtime
    fetch(), end to end

    From JavaScript through WebIDL and native C++ into Node.js streams, one block at a time.

    Also in JavaScript & the Web platform › Browser APIs

  • Runtime
    http.createServer()

    The TCP skeleton plus llhttp: a request across two machines, two kernels and the poll phase.

    Mission 09 of 12
  • Runtime
    The life of one HTTP request

    From name resolution to socket reuse, ordered by what is already true at each moment.

  • Runtime
    One socket, two objects

    req and res are built the same way: a stream base, an HTTP layer and a framework layer, on one prototype chain.

    Also in Node.js › Streams

  • Runtime
    Node.js HTTP from first principles

    Express, Next.js and Fastify all reduce to raw TCP bytes parsed by llhttp and handed over as req and res.

    Also in HTTP frameworks › Across frameworks

  • Framework (runtime)
    Two bloodlines of req and res

    Node, Express and Next compared: who mutates the request, who returns a response, and why.

    Also in HTTP frameworks › Across frameworks · Next.js & RSC › Request · Comparisons & decisions

Concurrency

HTTP frameworks

11 entries

Express

Fastify

Across frameworks

  • Runtime
    Node.js HTTP from first principles

    Express, Next.js and Fastify all reduce to raw TCP bytes parsed by llhttp and handed over as req and res.

    Also in Node.js › HTTP

  • Framework (runtime)
    Two bloodlines of req and res

    Node, Express and Next compared: who mutates the request, who returns a response, and why.

    Also in Node.js › HTTP · Next.js & RSC › Request · Comparisons & decisions

  • Framework (runtime)
    Express decorates Node, Next extends the Web

    Two ways to give a request object more power, and the lifecycle each one produces.

    Also in Next.js & RSC › Request · Comparisons & decisions

React

2 entries

Foundations

Events

  • Runtime
    Events: from interrupt to React

    One word smeared across five layers, from a hardware interrupt to React's batched handler.

    Also in JavaScript & the Web platform › Browser APIs

Next.js & RSC

22 entries

Request

  • Framework (runtime)
    Two bloodlines of req and res

    Node, Express and Next compared: who mutates the request, who returns a response, and why.

    Also in Node.js › HTTP · HTTP frameworks › Across frameworks · Comparisons & decisions

  • Framework (runtime)
    Express decorates Node, Next extends the Web

    Two ways to give a request object more power, and the lifecycle each one produces.

    Also in HTTP frameworks › Across frameworks · Comparisons & decisions

  • Framework (runtime)
    The anatomy of a Next.js request

    One program across a build pipeline, a server runtime and the browser, from socket to hydrated UI.

  • Framework (runtime)
    The App Router, end to end

    From a packet on the wire through routing and the two-pass RSC/SSR render, into the client router.

  • Framework (runtime)
    Two renderers, one request

    An App Router page is rendered twice, into two wire formats, over one streamed response.

  • Framework (runtime)
    App Router vs Pages Router

    Two complete routing systems in one framework, compared layer by layer.

    Also in Comparisons & decisions

  • Framework (runtime)
    Next.js 16 vs TanStack Start

    Two answers to the same question about where rendering and data loading should live.

    Also in Comparisons & decisions

RSC & Flight

Data plumbing

Build

Comparisons & decisions

6 entries

  • Runtime
    The runtime royal rumble

    Ten languages, thirty runtimes: a language is a spec, a runtime is what actually runs.

  • Framework (runtime)
    Two bloodlines of req and res

    Node, Express and Next compared: who mutates the request, who returns a response, and why.

    Also in Node.js › HTTP · HTTP frameworks › Across frameworks · Next.js & RSC › Request

  • Framework (runtime)
    Express decorates Node, Next extends the Web

    Two ways to give a request object more power, and the lifecycle each one produces.

    Also in HTTP frameworks › Across frameworks · Next.js & RSC › Request

  • Framework (runtime)
    App Router vs Pages Router

    Two complete routing systems in one framework, compared layer by layer.

    Also in Next.js & RSC › Request

  • Framework (runtime)
    Next.js 16 vs TanStack Start

    Two answers to the same question about where rendering and data loading should live.

    Also in Next.js & RSC › Request

  • Framework (build)
    ESM vs CommonJS

    Why a bundler can prove an ESM graph before running it, but has to execute CommonJS to find out.

    Also in JavaScript & the Web platform › Modules · Node.js › Modules

Theme