Next.js 15: The Good, The Bad, and The Server Components

Next.js 15: The Good, The Bad, and The Server Components
The App Router changed everything. With Next.js 15, the framework has doubled down heavily on stability, compilation speed, and caching architecture. Here is what happened when I migrated a 10,000-page directory to the latest version.
The Good: TurboPack is actually fast now
Waiting for local compilation was my biggest pet peeve. The updated TurboPack implementation in dev mode makes hot-reloading almost instantaneous, even on massive monolithic pages with deep component trees.
The Bad: Caching Confusion
The fetch cache defaults have undergone scrutiny and changes. When upgrading, we ran into an issue where certain dynamic product pages were caching indefinitely because we missed updating our revalidate tags on our data-fetching utility wrappers.
Always explicitly define your caching strategy:
const res = await fetch('https://api.example.com/data', {
next: { revalidate: 3600 } // Always be explicit!
});
The Verdict
If you are starting a new project in 2026, Next.js 15 is the absolute gold standard for React frameworks. The Server Components model is fully mature. If you are migrating a legacy Pages router project... prepare for a painful week, but know that the performance gains on the other side are incredibly worth it.

Ghulam Mustafa
Full-Stack AI & Shopify Engineer