SSR Rendered via Server-Side Rendering ยท HTML generated at 2026-10-31T13:03:20.762Z

Rendering Strategies

A from-first-principles exploration of SSG, SSR, CSR, ISR, and PPR - built with zero frameworks.

SSG Static Site Generation

HTML is generated ONCE at build time. Run `node src/build.js` to regenerate. The timestamp on the page won't change until you rebuild.

SSR Server-Side Rendering

HTML is generated fresh on EVERY request. Refresh the page repeatedly - the timestamp updates each time.

CSR Client-Side Rendering

Server sends a near-empty HTML shell. JavaScript runs in your browser, fetches the data, and builds the DOM. View source - you'll see almost no content.

ISR Incremental Static Regeneration

Serves a cached static file. After 10 seconds of staleness, the NEXT request triggers a background rebuild. You get the stale page instantly; the page after you gets the fresh one.

PPR Partial Pre-Rendering

Static shell served instantly from disk. Dynamic hole filled at request time. Both arrive in ONE HTTP response via chunked transfer - no extra network round-trips.

STREAMING Streaming SSR (compare with PPR)

Streams exactly like PPR, but the shell is rendered on every request instead of read from disk. Refresh both: this timestamp changes, PPR's shell timestamp doesn't.