Next.js isn’t the future of React.
It’s a bloated, overengineered Rube Goldberg machine with a shiny deploy button. Behind the veneer of DX and performance lies a tangle of architectural sprawl and half-baked features.
Let’s break it down.
1. The App Directory Is a Cognitive Landmine
The new app/
directory is a mess of conventions pretending to be flexibility.
Layouts, templates, nested routing, parallel routes — all crammed into a folder structure that looks intuitive until it breaks. Then you’re spelunking through stack traces trying to figure out what “rendering phase” you’re in.
It’s magic until it’s not.
2. Server Components Are Not Ready
React Server Components (RSC) are the cornerstone of Next.js 13+ — and they’re not ready.
The mental model is bizarre. The docs are vague. The tooling is brittle. You’re debugging hydration bugs with a flashlight and a prayer.
This is experimental tech pushed into production by sheer marketing force.
3. The Performance Story Is Mostly Optics
Yes, Next.js preloads and code-splits. So do a dozen other frameworks.
The performance defaults are fine — until you add third-party scripts or dynamic content. Then the cracks show. You’re still doing the work to make your app fast — Next just hides the cost until Lighthouse calls your bluff.
4. Too Many Moving Parts
Edge functions. Middleware. ISR. SSR. SSG. RSC. app/
. pages/
.
It’s acronym soup. The DX pitch is simplicity — the reality is juggling six render models across five runtime zones.
The complexity tax is real. And rising.
5. Vercel Lock-In
Next.js deploys beautifully to Vercel. Because it was built for Vercel.
Try moving to another platform and you’ll hit undocumented footguns and unsupported edge cases. That cozy DX becomes a cage the moment you try to leave.
6. Open Source, Corporate Agenda
Next.js is open-source the way Chromium is open-source: strategically.
Vercel owns the roadmap, shapes React’s direction by inertia, and ships features optimized for their platform. It’s not community-driven — it’s venture-shaped.
7. It’s Becoming the PHP of React
React was great because it was minimal and flexible.
Next.js tries to slap a full-stack story on top — but ends up recreating the worst parts of monolithic frameworks: complex, brittle, and tightly coupled to specific workflows.
It works great on the happy path. Good luck off-roading.
Is it popular? Absolutely.
But popularity isn’t quality. Next.js is what happens when a framework grows by absorbing every trend — without stopping to ask if it should.
Use it if you must.
Just don’t confuse momentum with merit.
This was Part 2. Missed the first?
👉 Read: “Next.js Is Winning. Here’s Why.”