One Year with Next.js App Router – Why We're Moving On

Dev backlash: ditching Next.js for TanStack as comments go nuclear

TLDR: A developer abandoned Next.js’s App Router and React Server Components after a year, migrating to TanStack Start. Comments exploded: some cheered the move and praised simpler routers, others said to skip server components or try Nuxt; the debate matters as teams rethink web app complexity and tool choices.

One developer just rage-quit Next.js’s App Router and the buzz is deafening. After a year of wrestling with React Server Components (basically splitting your page between code that runs on the “server” and code that runs in your browser), they’ve packed their bags and moved the whole frontend to TanStack Start. The breaking point? Pages reloading and losing state when they shouldn’t. Cue the crowd: skeptrune shouted, “YES! YES! I FEEL SO SEEN,” calling the behavior “unbelievably frustrating.”

Supporters piled on with “we dumped Next and everything got simpler and FASTER,” while minimalists flexed the “just don’t use server components” card. Meanwhile, the classic meme “have you tried Nuxt.js” dropped like a well-timed GIF, and PebblesHD claimed Vite + React Router “just works,” hinting that if things seem hard, maybe you’ve overcomplicated your app. The vibe is half group therapy, half jailbreak—from “escape this hell” to jokes about framework Stockholm Syndrome. Whether you love Next.js or loathe it, the community is split: fix the remount issue and naming confusion, or ditch the whole thing for simpler tools. Either way, the comments are a bonfire of hot takes, and everyone brought marshmallows.

Key Points

  • The article critiques the design of Next.js App Router and React Server Components based on a year of professional use.
  • It explains RSC’s server/client component split: server components are async and can access backend resources, while client components handle browser interactivity.
  • A code example illustrates streaming HTML from server components, using React Suspense for concurrent loading and fallback UI to avoid waterfalls.
  • The author notes terminology confusion around “server” and “client,” preferring “backend” (Node.js) and “frontend” (browser) to describe execution contexts.
  • The author reports that their team migrated their frontend from Next.js/Vercel to TanStack Start and describes the move as seamless.

Hottest takes

"YES! YES! I FEEL SO SEEN RIGHT NOW! I find this behavior unbelievably frustrating." — skeptrune
"everything in every sense got simpler, and FASTER." — sibeliuss
"...or just not use server components :)" — 383toast
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.