Why Next.js 16 (and not 15 or 14) for ai-whisperers.org
Used Next.js 16.2.4 for the new build, with Turbopack + App Router.
We needed 4-locale SSG with sub-millisecond TTFB, content-driven (not CMS-driven), and Docker Swarm deployable. Next 16's `params: Promise<{...}>` async API is the right tradeoff: it forces correct async handling and unlocks streaming SSR later. Next 15 has the same shape but still in development. Going back to 14 would have meant missing 2 years of perf improvements.
Astro is great for content sites but our dynamic pricing + case-study pages would have needed client islands anyway. SvelteKit is faster but the team has 5 years of React muscle memory. Remix is React 18 only. Vite + RRR is 3x more code to maintain. Pages Router is dead.
First deploy had 4 pages using the old sync `params: { lang: string }` shape. They 500'd in the prerender pass. Took a manual sweep across all 22 apps in the monorepo to find them all.
A grep one-liner saved hours: `grep -rE 'params\s*:\s*\{\s*[\w]+\s*:\s*string' apps/*/app/`. Should have run that before the first build.