Fabrication · 12/12
Steel fabrication
The same SPA problem as the events build, plus two complications: page-level SEO managed by a client-side library, and an interactive map that breaks a server render if handled naively.
[ The transformation ]
What changed.
01
Same branch-isolated migration playbook, run end to end.
02
react-helmet-async replaced with the Next Metadata API, preserving every page’s SEO and the LocalBusiness structured data.
03
The browser-only map wired through an ssr:false dynamic import, so it can never break the server render. Verified page by page.
Next.js 14 (App Router)TypeScriptTailwindDynamic imports
[ Design system ]
What it's built from.
Read off the delivered stylesheet, not chosen for this page.
Palette
Typefaces
Inter
Headings
Helvetica Neue
Body
Every route pre-rendered static, so the page arrives as HTML before a line of JavaScript runs.



