Next.js 16: What Actually Changed?

Next.js 16 is here with Turbopack caching, React 19.2, and real performance gains. Here's what's new, what's faster, and what you need to update.

Hasan Hatem

3 min read
51 views
Next.js 16: What Actually Changed?

Next.js 16 just dropped. The big news? Build times are finally getting the attention they deserve.

If you've complained about slow builds and restarts, this release is for you. Let's break down what changed and whether you should upgrade.

The Big Wins

1. Turbopack Gets Faster (With File System Caching)

Turbopack now caches your builds to the file system by default. Translation: restarts are way faster.

Add this to your next.config.mjs:

export default {
  experimental: {
    turbopackFileSystemCacheForDev: true,
    turbopackFileSystemCacheForBuild: true,
  },
};

Real numbers: On a MacBook Pro M3 Max, builds went from ~15 seconds to 5.6 seconds. That's 2.6x faster than Webpack and 4.9x faster than Next.js 15.

Startup time? 603ms. That's instant.

2. React 19.2 Is The Default

Next.js 16 ships with React 19.2 out of the box. You get:

  • New <Activity> component
  • useEffectEvent hook
  • Stable React Compiler (more on this below)
  • Stricter ESLint rules that catch more bugs

No config needed. Just upgrade and it works.

3. React Compiler: Stable But Off By Default

The React Compiler is stable now, but you have to turn it on manually.

What does it do? Optimizes your React code automatically so you write fewer useMemo and useCallback hooks.

Enable it:

export default {
  reactCompiler: true,
};

Should you use it? If you're starting a new project, yes. If you have an existing codebase, test first.

4. Middleware → Proxy (Naming Change)

middleware.ts is now called proxy.ts. Same functionality, clearer name.

Old files still work (backward compatible), but new projects should use proxy.ts.

// proxy.ts (new name)
export function middleware(request) {
  // Your code here
}

This is just a rename. Your middleware code doesn't change.

5. Better Caching Controls

New caching functions give you more control:

updateTag(): Update cached data without invalidating the entire cache.

Improved revalidateTag(): Revalidate specific cache tags with better performance.

These are production-ready now. Use them if you need granular cache control.

6. Smoother Navigation

Two under-the-hood improvements:

  • Layout deduplication: Next.js doesn't re-render layouts that haven't changed
  • Incremental pre-fetching: Pages load faster by fetching data in smaller chunks

You don't have to do anything. Navigation just feels faster.

Real Performance Benchmarks

Tested on MacBook Pro M3 Max (36GB RAM):

MetricTimevs Previous
Startup603msInstant
Build (Turbopack)5.6s2.6x faster
Build (Webpack)15sBaseline
NavigationVariesFaster on most routes

The difference is noticeable. If you're running npm run dev 50 times a day, you'll save real time.

Should You Upgrade?

Upgrade if:

  • You're frustrated with slow builds
  • You want faster development experience
  • You're starting a new project

Wait if:

  • You have a large production app with custom middleware
  • You rely on experimental features that might break
  • You're mid-sprint and can't test properly

How To Upgrade

  1. Update Next.js:
npm install next@16
  1. Add Turbopack caching to next.config.mjs:
export default {
  experimental: {
    turbopackFileSystemCacheForDev: true,
    turbopackFileSystemCacheForBuild: true,
  },
};
  1. Rename middleware.ts to proxy.ts (optional but recommended)

  2. Test your app

  3. Ship it

What This Means For GetNextKit Users

GetNextKit already uses Next.js 16 and Turbopack caching out of the box. You get:

  • 5.6 second builds instead of 15 seconds
  • 603ms startup instead of 2+ seconds
  • Faster navigation with layout deduplication
  • React 19.2 with all the latest features

No config needed. Clone the repo and it just works.

Bottom Line

Next.js 16 delivers real performance gains. Builds are faster, navigation is smoother, and the dev experience is better.

Is it a must-upgrade? Not if you're happy with your current setup. But if slow builds annoy you, this release fixes that.

Turbopack is finally living up to the hype. About time.


Need a starter kit with Next.js 16 already configured? GetNextKit includes Next.js 16, Turbopack, auth, payments, and everything else you need to ship fast. One-time payment, lifetime updates.

Share this article

Related Articles

Featured On