{"id":861,"slug":"client-bjf-build-performance-v2","title":"B&J — build performance (v2, Turbopack, verified 2026-05-24)","kind":"reference","scope":"client-case-studies","status":"current","audiences":["kevin","candid-team","client-prospect"],"topics":["nextjs","build-tooling","client-boucher-jones","case-study-source","kpi-candidates"],"reference_body":"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.\n\n| Metric | Value |\n|---|---|\n| **Total build time (wall clock)** | **1m 19.3s** |\n| Compile time | 10.0s |\n| TypeScript check | 4.2s |\n| Static page generation | ~60s |\n| **Routes in build table** | **41** explicit entries (37 static, 3 SSG-with-params, 1 dynamic) |\n| **Prerendered routes** (after SSG expansion) | **79** total paths in `prerender-manifest.json` |\n| Static (○) | 37 |\n| SSG with `generateStaticParams` (●) | 3 — `/locations/[slug]`, `/locations/[slug]/[serviceSlug]`, `/resources/[slug]` |\n| Dynamic / server-rendered (ƒ) | 1 — `/api/contact` |\n| **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. |\n| **`.next/static/` size after build** | **1.9 MB** total |\n\n## Per-route bundle sizes\n\nNext.js 16's build output table no longer includes a per-route Size / First Load JS column (Turbopack-era simplification).\n\n- Largest individual chunk in `.next/static/chunks/`: **227 KB** (`0kxq0~d~m-gwi.js`)\n- Smallest tracked chunk: ~3 KB\n- Shared First Load JS baseline is not surfaced as a single number in v16 stdout\n- 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)\n\n**[Partial — Next 16's stdout does not break this down per route; needs `@next/bundle-analyzer` for a clean read, which is not installed.]**\n\n## Headline KPI line for the case study\n\n> **\"79 prerendered routes built in 79 seconds — Turbopack on Next.js 16.2.6, single-worker, no warm cache.\"**\n\nSee [[client-bjf-kpi-candidates]] for the v1 KPI table this fills in.","rationale_body":null,"metadata":null,"links":{"outgoing":[{"slug":"client-bjf-live-site-inventory","title":"B&J live site inventory — page count, IA, what is planned (headline KPI: ~50 pages live vs ~6 before)","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-kpi-candidates","title":"B&J KPI candidates — every defensible metric, with source and confidence","kind":"reference","scope":"client-case-studies","link_type":"relates-to"}],"incoming":[{"slug":"client-bjf-case-study-source-v2","title":"Boucher & Jones — case-study source material, v2 (technical facts, 2026-05-24)","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-deploy-frequency-v2","title":"B&J — deploy frequency and commit cadence (v2, verified 2026-05-24)","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-data-gaps-needs-followup","title":"B&J — known unknowns that need a human conversation or a tool query before publication","kind":"reference","scope":"client-case-studies","link_type":"relates-to"}]},"created_at":"2026-05-24T01:16:37.123Z","updated_at":"2026-05-24T01:16:37.123Z"}