The Controversy: What the Community Says

"I just can't support a framework that releases version after version filled with problems. Do you know how terrifying it is to build out a beautiful application only to discover a critical error, leading you to a closed GitHub issue with 50 comments in it." — A frustrated Next.js developer

Every framework has its critics. But Next.js has inspired a particularly passionate debate. Understanding this controversy is part of knowing your tools deeply.

The App Router Stability Debate

The Launch Backlash (October 2022)

When Next.js 13 launched with the App Router, it was marked as "stable" for production use. The community disagreed.

Developer complaints:

Specific Issues Reported

  1. Dev server crashes — "Crashes every 20 minutes"
  2. Vague errors — "No traceable call stacks"
  3. Slow HMR — Hot module replacement became sluggish
  4. Memory leaks — Dev server consuming excessive memory
  5. Caching confusion — Stale data appearing unexpectedly

The Complexity Concern

"While the App Router introduced interesting features, the biggest loss was simplicity."

HackerNews commentary: "The fact is that Next.js is becoming complicated. It's not simple anymore. Now you have to use an app folder with 'page.js' to make it as a route. It's not file system routing anymore. It's folder routing. Besides that, app folder is slower than pages."

Vercel's Response

Lee Robinson (VP at Vercel) acknowledged the issues:

"The App Router rollout has had bumps. Some bugs, things that didn't work, and places where the performance could be better."

He explained the reasoning: "The App Router is a very different model from the Pages Router. It's almost like a new framework."

In a June 2023 blog post, Vercel formally acknowledged: "Since then, we've received lots of valuable feedback and increased adoption has inevitably revealed bugs and opportunities for further improvement. We want you to know that we are not yet satisfied with the experience of using the App Router and it is our top priority moving forward."


React Server Components: Promise and Pushback

The Vision

On December 21, 2020, the React team published an RFC introducing Server Components—components that run only on the server and ship zero JavaScript to the client.

The promise:

The Criticism

Added Complexity:

"For a significant number of ReactJs developers, server components introduce added complexity to the development of ReactJs applications."

Library Maintainer Frustration:

Lenz Weber-Tronic (Apollo Client/Redux Toolkit maintainer):

"Honestly, when I started this, I've never felt as lost before. There was no public guidance on anything beyond basic RSC usage, and the Next.js docs—while they were already very good—were definitely not aimed at someone who would be writing a library. I had to gather most of my information from Twitter discussions."

The Symmetry Problem:

"The React team is trying to create a 'symmetry' between Server and Client where it might not actually exist: The server renders once, and the client lives for a long time. A single promise might not be what you use on the client, because your data source might update repeatedly."

Communication Issues:

"What frustrates maintainers most is that they could have given their userbase some kind of suspense implementation years ago if the React team had communicated more openly what they are working on."

Dan Abramov's Response

Dan Abramov argued that "production-ready" is subjective. Although RSC was still in the canary version, Facebook had already used it extensively. He believes verification in practice improves technology more quickly toward maturity and stability.

Dan recommended that developers wanting to dive into the code should look at Next.js 13 app router since it has the most comprehensive implementation of server components.


The Vercel-React Relationship Debate

The Concern

Some in the community worry about the close relationship between Vercel (a private company) and React (an open-source project).

"It's always seemed clear that Vercel has been, at best, OSS-ish. Trying to play both sides of claiming to be open source but also (somewhat sneakily) building a walled garden to lock users into their hosting platform."

Specific Critiques

  1. React team at Vercel — Multiple React core team members work at Vercel
  2. Feature alignment — New React features often debut in Next.js first
  3. Documentation bias — React docs sometimes assume you're using Next.js
  4. Self-hosting friction — Some features work better on Vercel than self-hosted

Counterarguments

  1. Open source remains open — All code is MIT licensed
  2. Multiple implementations — Remix, Astro, and others also implement RSC
  3. Contributions benefit everyone — Vercel's investment accelerates React development
  4. Self-hosting is supported — Next.js works on any Node.js host

The Remix Comparison

The Alternative

Remix (created by Ryan Florence and Michael Jackson, now maintained by Shopify) offers a different philosophy:

"What distinguishes Remix is its philosophical mindset. While most contemporary frameworks attempt to reinvent the wheel, Remix goes back to the basic principles that made the web work in the first place."

Key Differences

Aspect Next.js Remix
Rendering Multiple modes (SSG, SSR, ISR) SSR focused
Caching Framework-controlled You control caching at HTTP level
Philosophy Abstraction Web standards
Bundle size ~566KB (starter) ~371KB (starter)

Kent C. Dodds' Influence

Kent C. Dodds, who worked at Remix and popularized concepts like "Full Stack Components," has been a vocal advocate for Remix's approach:

"If the web platform has it, use it."


HackerNews Sentiment

The HackerNews community has been particularly critical:


The Security Incident (December 2025)

CVE-2025-55182: React2shell

A maximum-severity vulnerability was discovered in React Server Components with a CVSS score of 10.0.

"Most frameworks that adopt RSC—including Next.js App Router—ship with this logic enabled out of the box. This means that a standard Next.js project created via create-next-app, built and deployed with no code modifications, was exploitable under default settings."

What It Revealed

"This incident underscores a systemic challenge in modern JavaScript ecosystems: highly dynamic serialization mechanisms can become powerful RCE vectors when insufficient validation is applied."

The vulnerability was patched across Next.js 12-15, but it highlighted the complexity and attack surface of modern frameworks.


What This Means for You

The Balanced View

Next.js's strengths:

Next.js's weaknesses:

Making Your Own Judgment

  1. Try it yourself — Don't let Twitter discourse make the decision
  2. Read the RFCs — Understand the reasoning behind changes
  3. Watch the issues — GitHub tells you what's actually broken
  4. Have an exit strategy — Understand the alternatives (Remix, Astro, etc.)
  5. Follow the maintainers — Tim Neutkens, Lee Robinson, and others communicate actively

Key Takeaways


Sources