Events · 11/12
Mobile bar services
An eighteen-page single-page app that search engines could barely read: one document, one title, no per-page metadata, and a first paint that waited on JavaScript.
[ The transformation ]
What changed.
01
Migrated a Vite and React-Router SPA to Next.js 14 App Router — all eighteen routes converted to file-based routing and pre-rendered static.
02
react-router replaced with next/link throughout, and per-page metadata added for the first time.
03
Branch-isolated and verified pixel-identical before cutover; the live site was untouched until the switch.
Next.js 14 (App Router)TypeScriptTailwindStatic export
[ Design system ]
What it's built from.
Read off the delivered stylesheet, not chosen for this page.
Palette
Typefaces
Inter
Headings and body
Every route pre-rendered static, so the page arrives as HTML before a line of JavaScript runs.



