SSG — fully prerendered

Three cached scopes with long cacheLife windows, and one panel with no data at all. Nothing here defers to request time, so the route is served as static HTML from the cache.

The probe panel is the load-bearing one: random.org returns a different integer on every call, so the fact that this number never changes is proof the scope is not re-executing.

What to check

Reload this page ten times in a build (pnpm build && pnpm start). Not a single stamp, probe value or execution id should move.

Then confirm it came out of the build rather than a warm runtime cache: curl -s localhost:3000/ssg | grep -o 'data-exec="[^"]*"' | sort -u twice in a row gives identical output.

Rebuild, and every stamp jumps to the new build time — that is the only thing that moves them.

Immutable upstream

Static, no data

static

ran at exec gy1s0gage …

The stamp is the moment this module was loaded — the build, for a prerendered route. Read at module scope rather than during render, because an uncached Date.now() during prerender is a build error under Cache Components.

Pure markup plus one module-scope constant. Always in the static shell; nothing can make this re-render.

Settled FX rates

use cache
cacheLife
max
upstream
251ms

ran at exec 8b00hmage …

1 USD · published 2024-01-02

  • CHF0.84931
  • EUR0.91274
  • GBP0.79085
  • JPY142.1

A fixed past date, so the upstream response is immutable — verified byte-identical across calls. That is what makes cacheLife('max') honest here rather than merely optimistic.

Station roll-up and cache probe

All stations — one request, one entry

use cache
cacheLife
blog
cacheTag
stations, stations:index
upstream
485ms

ran at exec 9l04d0age …

  • London17.7°C · 71% · 1020.3hPa
  • Paris19.1°C · 64% · 1018.5hPa
  • Reykjavik10.1°C · 84% · 963.2hPa
  • Tokyo20.2°C · 96% · 1012.5hPa
  • Sydney16.3°C · 91% · 1018.6hPa
  • New York20°C · 41% · 1022.8hPa
  • Santiago16.2°C · 58% · 954.4hPa
  • Nairobi17.8°C · 66% · 841.9hPa

Every station in a single upstream call, so this is one cache entry covering many entities and can only be invalidated as a unit. Compare with the per-station entries on /tags.

Cache probe

use cache
cacheLife
max
upstream
227ms

ran at exec 72diogage …

probe 685,649

random.org returns a different integer on every call. A frozen number here means a genuine cache hit, independent of the timestamp.