It's not just you, Next.js is getting harder to use

Growing frustration with Next.js centers on its increasing complexity, especially around the new App Router, server components, opaque caching, and fragile auth patterns that many feel slow development and make upgrades painful. Commenters contrast this with earlier versions of Next.js that felt simple and productive, and increasingly look to alternatives such as Remix, Nuxt, SvelteKit, Astro, htmx with traditional backends, or full-stack frameworks like Laravel and Rails paired with Inertia.js. Underlying the technical complaints is a broader concern that Vercel’s commercial incentives and tight influence over React are driving the ecosystem toward more server-side complexity with limited tangible benefit for typical SaaS and internal applications.

Overall Sentiment on Next.js and Its Direction

  • Many early adopters loved older Next.js (pages router, simple SSR/SSG, great docs) and now feel it has become complex, brittle, and slower.
  • The App Router, RSC, and default server components are seen by many as confusing and hard to reason about, especially when mixing client/server logic.
  • Some still like the App Router and server actions, praising direct server function calls and reduced boilerplate for internal APIs, but acknowledge the learning curve.

Developer Experience, Performance, and Footguns

  • Complaints about slow dev server, heavy memory use, worse build times vs earlier versions.
  • Caching is described as opaque and inconsistent between dev and prod; v14’s caching behavior eroded trust.
  • Auth is widely described as easy to get wrong, with subtle caching and multi-layer checks; examples of large vendors shipping flawed patterns.
  • File-based routing draws mixed reactions: helpful for small/medium apps, but regarded as constraining and awkward in the App Router (e.g., page.tsx naming, complex modal patterns, language-prefixed routes remounting entire trees).

React, Vercel, and Incentives

  • Several comments argue Vercel’s business model (selling compute) incentivizes pushing SSR/RSC and complexity, with limited clear benefit for most apps.
  • Some feel React itself has been pulled in this direction, losing its earlier simplicity.

Alternatives and Migration Paths

  • Many are considering or moving to: Remix, SvelteKit, Nuxt, Astro, Deno Fresh, Vike, SolidStart, Inertia.js, HTMX with traditional backends, and batteries-included frameworks like Laravel/Rails/Django.
  • Angular and Vue/Nuxt are praised by some for stability and consistency; others note Vue’s own breaking transitions (Vue 2→3, Nuxt legacy apps).
  • Some recommend staying on Next’s pages router; others are abandoning Next altogether after painful upgrades.

Broader JS/Framework Fatigue

  • Strong theme of exhaustion with constant churn, over-engineering, and toolchain bloat.
  • Some advocate going “back” to SPAs + simple REST backends, or classic SSR (PHP/Django/Rails) with minimal JS or HTMX.
  • There is a sense that enterprise pressures and hype cycles drive complexity at the cost of developer productivity.