B&J — build performance (v2, Turbopack, verified 2026-05-24)

Single fresh npm run build against Next.js 16.2.6 with Turbopack on the production host. Full output in v1 source dump's Appendix A.

Metric Value
Total build time (wall clock) 1m 19.3s
Compile time 10.0s
TypeScript check 4.2s
Static page generation ~60s
Routes in build table 41 explicit entries (37 static, 3 SSG-with-params, 1 dynamic)
Prerendered routes (after SSG expansion) 79 total paths in prerender-manifest.json
Static (○) 37
SSG with generateStaticParams (●) 3 — /locations/[slug], /locations/[slug]/[serviceSlug], /resources/[slug]
Dynamic / server-rendered (ƒ) 1 — /api/contact
Build retries 1/agriculture/coloured-diesel exceeded the 60s static-generation budget on attempt 1, succeeded on retry. Not yet a regression; worth keeping an eye on.
.next/static/ size after build 1.9 MB total

Per-route bundle sizes

Next.js 16's build output table no longer includes a per-route Size / First Load JS column (Turbopack-era simplification).

  • Largest individual chunk in .next/static/chunks/: 227 KB (0kxq0~d~m-gwi.js)
  • Smallest tracked chunk: ~3 KB
  • Shared First Load JS baseline is not surfaced as a single number in v16 stdout
  • 1.9 MB total static budget across ~110 chunk files implies a typical First Load JS in the 100–200 KB range per route (consistent with prior builds before the v16 output format changed)

[Partial — Next 16's stdout does not break this down per route; needs @next/bundle-analyzer for a clean read, which is not installed.]

Headline KPI line for the case study

"79 prerendered routes built in 79 seconds — Turbopack on Next.js 16.2.6, single-worker, no warm cache."

See B&J KPI candidates — every defensible metric, with source and confidence for the v1 KPI table this fills in.