29 Oct 2023
Why NextJS (and App Router) is being hated on recently?
People are not happy with NextJS (and App Router) lately. No surprise, it all started with Next 13... Let's see what exactly the problem is.
It all kicked off with the big release of Next 13 and its shiny new App Router. Actually, it really got going when the stable Next 13.4 dropped on May 4th, 2023.
When the beta hit the scene, everyone was buzzing with excitement. But once the stable version (13.4) rolled out, things took a bit of a turn.
Vercel got a bit too big for its boots, making some questionable decisions, and a whole bunch of other stuff got thrown into the mix.
Let's dive in and see what it's all about.
The catastrophic Next 13.4 "stable" release
To people using Next.js, the App Router caused a lot of grief as it was not as stable as people expected it to be, despite being the main selling point of Next 13.
This is the only framework where in dev I'm scared to mousehover anything
This quote fucking kills me. But why would they be scared to mousehover?
Well, Next 13.4 came out with a whole bunch of bugs that should - in a normal world - automatically put it back to the beta version (just take a look at their GitHub Issues page)
The most frustrating issue is super slow page load times in development. Imagine having to wait 5s to fast-refresh, and 15 fucking seconds to
"""" fast """ refresh.
Fortunately, the Vercel team released a bunch of new versions aimed to fix that problem, along with Turbopack that provides "up to 53.3% faster local server startup" and "up to 94.7% faster code updates with Fast Refresh"
But guess what? Local development is still slow and Turbopack isn't stable yet (but soon hopefully).
Next.js 13's quality is really the beginning of all these hates. Sure, they're working hard to fix things, but slapping the alpha-quality features with a "stable" tag for use on a real production website with actual paying customers has really pissed people off.
But there's more...
Vercel is causing issues for Next.js
Recently, Vercel dropped an open-source full-stack AI headshot generator starter kit built with Next.js. Most of the work has been made by Leap AI though.
Guess what? Leap AI actually ripped off someone else's project and Vercel just went ahead and proudly published it on Twitter.
But it gets even worse. That guy got a threat from a Vercel staff member because the domain name was too similar to the employee's personal project. Using his Vercel access, the employee found the owner's personal information and a list of his projects.
As if this wasn't enough, Vercel's ToS aren't very clear. In short, they can "remove or disable any of your Content at any time for any reason". They can also "use, copy, modify, reproduce, distribute, display, publish, store and perform your Content" but hey, that's only to "Protect the Services and third parties".
But what exactly are those reasons? Who decides if a website should be removed? You'll have to trust Vercel on that one.
The whole situation stained their reputation for sure. In short, we trust Vercel with our code and data but they've got this insider advantage for their own little side gigs.
But know that the Vercel staff employee got terminated, and the company understood its lesson and will be more cautious about their publishers' templates. That's actually a good thing, they could have let it sink like many others do.
Next.js is "stealing" React?
Next.js is gradually becoming dominant over React and with Vercel bringing in many of the React team members, the situation hasn't improved. Since then, the React team has noticeably lacked collaboration - to the point where the maintainers of Redwood and Apollo expressed their concern about it.
It seems that Vercel is blurring the distinction between Next.js and React and people are often confused about what falls under React and what belongs to Next.js, especially concerning the server actions features.
But the story is actually quite different. In fact, Guillermo Rauch, the founder of Vercel and creator of Next.js, was already advocating for SSR back in 2016 while other were doubtful about it; like Michael Jackson for example, the creator of Remix.
Recent React features require large investment on the framework side to succeed.
And not just any framework, but a framework that has infrastructure for server-side rendering (hence why CRA was not a good fit).
Next.js bet on that paradigm since 2016, tirelessly.
It's just fun to criticize the top dog
Scroll on X for 15 minutes and you can be sure to have a good laugh, especially since the Next.js 14 release and server actions (aka Modern PHP). Here's a good one for you.
In a nutshell, Next.js introduced cool features and I believe that many people are excited to use them. The problem lies with the parent company - Vercel - and its recent situations. People are in their rights to be upset and joke about it, but I'm sure that Vercel understood lessons and will definitely improve themselves on many aspects.