All posts

Next.js 16 in Plain English: What Actually Changed

April 9, 20261 min read

Next.js 16 in Plain English: What Actually Changed

There's a lot in the Next.js 16 release notes. Most of it doesn't matter for small business sites. Here's what does.

Cache rules got stricter

Implicit caching is largely gone. If you want a fetch result to be cached, you say so out loud. This is good — the silent caching in 14 and 15 caused a lot of "why is my data stale" tickets — but it does mean upgrading an old project will surface bugs that were always there, just hidden.

Async params are now the default

Route params and search params are promises. You await them. Almost every dynamic page you've ever written needs a small edit. The codemod handles 90% of it.

Turbopack is stable

Dev server cold start is meaningfully faster. Production builds are faster on most projects. The remaining edge cases mostly involve obscure plugins. For new projects, just leave it on.

Image optimization defaults changed

Local images get sharper defaults; remote images need more explicit configuration. If your site uses third-party image CDNs, expect a 20-minute config session on upgrade.

Stop doing this immediately

If you're still putting data fetches in a useEffect inside a client component just because "that's what you did in 13," stop. Server Components have been the right answer for two years. The upgrade is the moment to clean it up.

Want this built for your business?

Book a free call and we'll talk through what's possible.