Next.js 15 made cookies() and headers() async. Next.js 16 kept it that way. If you still have synchronous calls, your build will break. Here is every pattern and the fix for each.
The hydration error that haunts every Next.js developer. It is almost always a date, a locale, or a random value. Here is how to find it and fix it for good.
PPR has been experimental for two years. Next.js 16 stabilizes it. I put it in a real app to see if it actually delivers on the promise of static and dynamic in the same page.
Next.js caching has changed three times in three major versions. Here is how it actually works in Next.js 16 with use cache, cacheLife, and cacheTag, explained without the marketing language.
Hydration mismatch errors are the most common Next.js bug and the error message tells you nothing. Here is every cause I have seen and the exact fix for each one.
The official Next.js 16 codemod handles the easy stuff. It does not handle the stuff that actually breaks your app. Here is what it misses and how to fix it before it bites you in production.
Next.js 16 renamed middleware.ts to proxy.ts and if you did not get the memo your auth redirects and route protection just stopped working. Here is what changed, why, and how to fix it.
You upgraded to Next.js 16 and now the build is yelling about Turbopack and webpack config. Here is exactly what that warning means and how to fix it without throwing your webpack config away.
CVE-2025-29927 let attackers bypass Next.js middleware with a single header. If your auth lives only in middleware you were wide open. Here is what happened and how to fix it properly.
Recently, we saw what happened to [Shipfa.st](https://shipfa.st/) when their API routes weren't properly protected. Let's make sure your Next.js application doesn't suffer the same fate.