Ask HN: Why has there been a recent surge in criticism toward Next.js?
3grandimam45/3/2025, 9:08:20 PM
Comments (4)
para_parolu · 6h ago
I can't say about surge. Haven't seen or contributed to it. But I can share my very recent experience.
A few months ago I left a large company for a fast‑growing startup that uses Next.js for several front‑end projects. I had never touched Next.js and knew little about it. After reading the documentation I felt optimistic; I scaffolded a new service quickly and everything went smoothly for the first month or two.
Then the oddities surfaced and I had to discover them the hard way.
Server Actions run sequentially, which makes no sense. When someone reported serialized requests I didn’t believe it at first. I stopped using them.
The App Router feels broken. Every route change triggers a backend request. A prefetch hack exists but doesn’t cover every case, and complex routing turns into trial‑and‑error. I eventually wrote my own routing.
The upgrade from 14 to 15 was billed as easy with codemods, yet I soon hit issues like reactMaxHeadersLength increasing header size and forcing reverse‑proxy changes. The migration guide never mentioned it. Next.js also bundles its own library versions, producing counter‑intuitive behavior you have to uncover yourself.
The use client / use server split is a mess. One side allows async components, the other doesn’t, so many developers just add use client everywhere to avoid surprises.
Environment variables are another headache: process.env shows different values from the real environment because Next.js overrides standard Node APIs.
My current task is to remove Next.js entirely because we can’t keep paying this complexity tax.
It’s a rant, I know, but Next.js has cost me a lot of time. For someone with minimal front‑end experience who needs a simple site quickly, I might still recommend it. For a complex or long‑term project maintained by experienced developers, I’d say stay away.
marklubi · 2h ago
Currently working for a company that jumps from new-hotness to new-hotness every couple of years. They're currently pushing Next.js, and they've been wrong almost every single time.
There are plenty of proven frameworks/languages out there that are consistent, performant, and maintainable. From my experience, Next.js is not one of them.
I think a lot of developers pick a framework for velocity. I've made this mistake before, and paid for it later. At a very early stage when you're trying things out (MVP) it might make sense, but the expense and headaches will be paid for later.
Edit: Just want to add on... tools have purposes and you have to pick the right one. Most people wouldn't use a paring knife to slice a loaf of bread.
baobun · 4h ago
Guessing it's just that part of the adoption curve:
1) Less overhyped blogs/tubes by-beginners-for-beginners and overall noise means negativity that was previously buried is now more visible
2) A larger fraction of the userbase has enough experience that the downsides become reality. In particular the reality of vendor-lockin with Vercel.
3) Reactionism: The hype was (still is?) overblown in the first place and this sentiment might be behind some of what you are seeing.
RainyDayTmrw · 9h ago
I don't think it's recent. I think it comes and goes. Maybe you've noticed the newest wave.
As for why, there's a lot of reasons. The big one that I'll note is what I call the "PHP effect" - an easy to use language has the most beginners, and beginner work product attracts negative attention.
A few months ago I left a large company for a fast‑growing startup that uses Next.js for several front‑end projects. I had never touched Next.js and knew little about it. After reading the documentation I felt optimistic; I scaffolded a new service quickly and everything went smoothly for the first month or two.
Then the oddities surfaced and I had to discover them the hard way.
Server Actions run sequentially, which makes no sense. When someone reported serialized requests I didn’t believe it at first. I stopped using them.
The App Router feels broken. Every route change triggers a backend request. A prefetch hack exists but doesn’t cover every case, and complex routing turns into trial‑and‑error. I eventually wrote my own routing.
The upgrade from 14 to 15 was billed as easy with codemods, yet I soon hit issues like reactMaxHeadersLength increasing header size and forcing reverse‑proxy changes. The migration guide never mentioned it. Next.js also bundles its own library versions, producing counter‑intuitive behavior you have to uncover yourself.
The use client / use server split is a mess. One side allows async components, the other doesn’t, so many developers just add use client everywhere to avoid surprises.
Environment variables are another headache: process.env shows different values from the real environment because Next.js overrides standard Node APIs.
My current task is to remove Next.js entirely because we can’t keep paying this complexity tax.
It’s a rant, I know, but Next.js has cost me a lot of time. For someone with minimal front‑end experience who needs a simple site quickly, I might still recommend it. For a complex or long‑term project maintained by experienced developers, I’d say stay away.
There are plenty of proven frameworks/languages out there that are consistent, performant, and maintainable. From my experience, Next.js is not one of them.
I think a lot of developers pick a framework for velocity. I've made this mistake before, and paid for it later. At a very early stage when you're trying things out (MVP) it might make sense, but the expense and headaches will be paid for later.
Edit: Just want to add on... tools have purposes and you have to pick the right one. Most people wouldn't use a paring knife to slice a loaf of bread.
1) Less overhyped blogs/tubes by-beginners-for-beginners and overall noise means negativity that was previously buried is now more visible
2) A larger fraction of the userbase has enough experience that the downsides become reality. In particular the reality of vendor-lockin with Vercel.
3) Reactionism: The hype was (still is?) overblown in the first place and this sentiment might be behind some of what you are seeing.
As for why, there's a lot of reasons. The big one that I'll note is what I call the "PHP effect" - an easy to use language has the most beginners, and beginner work product attracts negative attention.