Top
Best
New

Posted by Bogdanp 9/2/2025

Next.js is infuriating(blog.meca.sh)
1027 points | 578 commentspage 2
kumarvvr 9/2/2025|
Recently started developing a client side web app using Angular v 20. The app is quite complex, with about 40 components many of them nested, about 7 to 8 "pages", data dashboards, multiple forms, continuously updating data from server, etc. There substantial amount of data flow in the application.

So far, the experience has been absolutely wonderful, particularly, given the context of myself as a developer in the whole process, which is,

1. I am a seasoned developer, mainly doing python stuff, back-end servers, desktop applications, data applications, etc. Very little exposure to front-end tech.

2. I keep myself updated with the concepts, patterns & architecture of front-end systems, because I am extremely into design and good UI.

3. I am at a stage where I can do basic web apps with Vue, React, Angular & vanilla HTML and JS.

With Angular Signals and concept of Stores, Services and Dependency Injection, I am able to handle data flow very easily, am able to add features to the app in a consistent manner, able to debug and trace errors with relative ease.

I have earlier read NextJS docs, Remix Docs and read tutorials about developing react apps using Vite. It has always been a confusing maze of stuff. Perhaps I am getting old (about to touch 40), but I have been programming for about 25 years now and I was able to carve out the architecture I want in an Angular app with ease.

Also, this app is going to be a production app, and is critical for my work, so its an impactful decision, which, thankfully, I have been happy and pleasantly surprised with.

It could be that I could have chosen React, and end up with the same thing, but, somehow, in the extensive tech stack selection process that I took up before committing to Angular (which involved testing out core mechanisms of the application in React, Vue & Angular), I felt very much at home with Angular way of things.

EMM_386 9/2/2025||
I've worked on many very large Angular applications I've always loved working with it. I have worked with plenty of React but I avoid Next.js like the plague after reading through documentation / examples / blog posts.

I was in the trenches pre-ES6 with JavaScript and JS/CSS since the year they came out, so of course I do love KISS-style bare-bones websites when that is the proper tool for the job. But certainly not for anything at scale. Angular, being a framework and not a library, is perfect for those purposes. I prefer that it IS opinionated (no "what router does this project use?"), and I also would not develop anything these days without TypeScript (even small sites).

To each their own.

hinkley 9/3/2025||
Meanwhile, I've been looking for a while and if they want a full stack or a FE developer it's always, always React. Rarely if ever Angular, occasionally Vue or Svelte, and never Phoenix.

I recall back in the day when Struts was everywhere, some of us figured out it was because Struts was a trap that took twice as many devs to get anything done, and that's why there are so many openings for it. Every time I look at React, I just wonder if it is the new Struts.

The old Angular apps I worked on (heck that was before AngularJS and Angular split) was pretty decent. Long argument lists were a big problem, sure, but the whole Service layer was one of the smartest features I've seen in a framework in a while. Second only to Routes. It saved us leaking a bunch of impedance mismatches across the entire codebase. It gave us some place to stash code while we asked the backend team to change their APIs.

kyleee 7 days ago||
I trust your and parent’s comment 1000x more than rauch and leerob and will give angular a go next time I can
tyteen4a03 9/2/2025||
Does anybody have Vercel's mailing address? I would like to send them a "Have a good day at school!" card for this issue, which will be old enough to attend elementary school next year: https://github.com/vercel/next.js/issues/10084
pas 9/3/2025|
Main address (if a company registered address): 440 N Barranca Ave #4133, Covina, CA 91723

from https://vercel.com/legal/dpa

Vinnl 9/2/2025||
The direction React and Next.js have been moving is to give you very granular control over where your code runs, and when.

The previous model was that you simply have code that runs on a server when a request comes in, sends a response to the client, and then the code in that response is run on the client. Instead, now we have a situation where some bits run on the server, some of them on the client, which call out to some bits on the server again, and all of this can happen either before or after the server started sending the response. And then on e.g. Vercel, you also have edge functions as an additional permutation.

Which is kinda neat, but also massively complicates the mental model.

dev_l1x_be 9/2/2025||
> In general Next.js has so many layers of abstraction that 99.9999% of projects don't need.

This true to most software projects that are used more than one set of people. Joe Armstrong proposed a solution that we should opensource functions only and people could assemble everything else using these opensource functions. I start to think that he might be right and instead using "frameworks" we should use these set of functions instead.

snisarenko 9/2/2025||
Spot on. This is the core problem.

The ammount of functionality is not the problem.

The problem is that the functionality is not a set of composable functions and classes. It's an inversion of control "framworky" blackbox, where behavior is hard to reason about.

detectivestory 9/2/2025|||
I did find it quite funny that he makes this claim, but then writes an entire blog piece about how nextjs is no good because of one particular thing it doesn't do to his liking!
datadrivenangel 9/2/2025|||
The Unix philosophy?
DonHopkins 9/2/2025||
Every DOM element is a file. And you can use ioctl from JavaScript for anything that doesn't fit neatly into a one dimensional stream of bytes.
platevoltage 9/2/2025||
How I feel any time I see a simple static website or someone's developer portfolio with a vercel URL. Like, did you really need this?
platelminto 9/2/2025||
I was about to start a new project with Next.js... is anyone willing to give me some advice?

I'm about to start building an e-commerce site (30-50k poster print designs, i.e. no inventory), and was leaning towards a Django backend (because I know it) and... some sort of SSR frontend. I'm not really a frontend guy, but taking this as an opportunity to learn it. This article obviously does not inspire confidence in me choosing Next.js - would someone have any suggestions/pros and cons of what to use?

I currently see the options for doing SSR as:

- Next.js: well-represented in AI training data (though recent versions had breaking changes? I'm not sure), but annoying to actually use (according to this article/general sentiment I've found online), and pushes you into Vercel? (I barely know what that means)

- SvelteKit: best DX and nice to use, but might be less present in AI training data?

- Django templates + HTMX: possibly limiting? Less maintainable once you get to a certain size? I'm not sure.

- Other options?

komali2 9/2/2025||
In my opinion (9 years FE exp) you should build your ecommerce site in shopify or wordpress + woocommerce or some other off the shelf tool. It will be up before the evening's out and you won't be spending that much extra than you would have anyway, and everything will Just Work (tm) and look pretty good (chuck out 50$ for a nice wordpress theme and you're golden).

If you insist on rolling your own, Django + templates should be plenty. Lots of existing code for integrating Stripe or whatever. AI will be fine at it. You could potentially investigate medusajs or prestashop. Here's a list that could be fun to investigate: https://github.com/awesome-selfhosted/awesome-selfhosted?tab... but keyword is fun. You should build it in wordpress because that is a bombproof solution running like half the internet and will save you endless amount of time.

If you're doing this as an exercise to learn a new tool, leave the AI to the side as you're robbing yourself an opportunity to delve into docs and gain more domain knowledge. And absolutely do not touch nextjs with a 10 foot pole, it's an absurdly overwrought tool. The only people that should learn nextjs are people working at dev houses that churn out a shitload of full stack apps for clients that have the budget to shell out for vercel's hosting costs. And even then imo they should just be using django + react + vite + tanstack MAYBE.

HTMX is cool but I'm not sure the point, again if for fun why not, but I would ask yourself: you get your site up and running and you spend the next year scrambling around putting things in boxes and printing shipping labels, and then in 2026 Thanksgiving right before the holiday rush something breaks in your app and you want to fix it but HTMX/nextjs/whatever have gone through 2 breaking change upgrades and so have 4 different libraries they rely on and actually the most up to date version of two libraries you rely on are not interoperable right now because they depend on different node versions or some other bullshit, and now what do you do?

Just use wordpress.

platelminto 9/2/2025|||
I was 100% on board with WordPress/WC at first, and had already started building with it, but was immediately coming into issues. Just Work (tm) was my expectation, and was most definitely not what I found.

- I used the product variations feature, 18 variations per product, and all of a sudden the "Duplicate" button took 15 seconds! I learned this is because each variation is it's own thing, so it was making 18 new things (still insane it took that long, on my beefy dev pc). I can't imagine 30-50k products * 18 variations * metadata stuff working fast in any way.

- In avoiding product variations, there's plugins for adding product fields, and plugins for pricing rules, but clicking around to do stuff, or maybe writing php that integrates with plugins that I'm clicking around in... it's not the way I want to spend my time developing. It especially integrates terribly with AI tools, which at this point are an important development tool for me.

- I don't want to have a 1-to-1 mapping between products and pages. This doesn't fit the WC model well (or Shopify for that matter).

Generally, I can imagine an experienced wordpress/PHP dev being able to overcome these issues, but if I'm learning something anyway, I'd personally rather learn a proper frontend framework (be it any of the options you mentioned). Leveraging AI tools also matters.

I appreciate your response! Gives me more confidence in maybe sticking to Django + templates. But from what I've seen, and also in discussions with other developers, I think wordpress is out for this project. Thanks again :)

chrisweekly 9/2/2025||||
No! PHP is merely bad, but Wordpress is truly abysmal. Steer clear. Webdev since 1998 (27y).
komali2 9/2/2025||
Well, fine, what would you recommend instead? I've never had issues with wordpress as long as I stay away from their stupid block editor thingy but you've much more experience than me so I'm curious your opinion.
recursivedoubts 9/2/2025||||
htmx will not have gone through 2 breaking change upgrades

https://htmx.org/essays/future/

wmanley 9/2/2025||
And also:

> and so have 4 different libraries they rely on

HTMX has no dependencies. https://htmx.org/essays/vendoring/

> and actually the most up to date version of two libraries you rely on are not interoperable right now because they depend on different node versions

HTMX has no build step. https://htmx.org/essays/no-build-step/

rahkiin 9/2/2025||||
This is the real advice.

Do what gets the actual job done: focus on the selling, not the tech of the shop. Grab a template and adjust it to fit your marketing.

Actual useful tech is integration with a printer/printshop. Or getting packaging labels automatically for orders. Or using AI to make new posters.

tyteen4a03 9/2/2025|||
Or use PayloadCMS, which is Next but at least you don't need to deal with WordPress.
carlosneves 9/2/2025|||
For awareness, if you want to build a SSG/SSR frontend, there's also [Astro](https://astro.build/)

It lets you ship client islands to the client, which AFAIK is essentially partial hydration.

youngtaff 9/2/2025||
You can make islands with pretty much any JS framework or even none e.g. Web Components

Katie Sylor-Miller named them when she was at Etsy and from memory they were React components in a PHP page to start

skorpen 9/2/2025|||
Sonnet 4 and gpt5 are both good at SvelteKit. You might have to specify that you want to use Svelte 5 in the llm instructions for your editor.

Use Context7 mcp to get Svelte 5 docs if the agent messes up something you know should work.

The new experimental remote functions solved a big pain point with sveltekit, so I no longer have any reasons not to recommend svelte and sveltekit to people.

christophilus 9/2/2025|||
Vanilla Django would get my vote. Your description doesn’t sound like it needs a heavy frontend. Sprinkle in some scripts as needed. If you really want to learn front-end, Next is really just the worst place to start or finish or anything in between.
Zanfa 9/2/2025|||
If already know Django, go with Django and sprinkle in some HTMX as necessary. You’ll get 95% of the benefits with a fraction of the effort compared to a modern Javascript SPA. And it’ll be a breeze to maintain. You’ll also save so much time never needing to debug a bundler, minifier or ESM/CJS issues.
palmfacehn 9/2/2025|||
Use what you know. Build the backend first. You probably won't know what the frontend requires before this.

Once you know what is actually going to be on your site, you can style the output with CSS and add the necessary interactivity with JS. Browser APIs have mostly standardized as compared to the bad old days. Using them directly instead of libraries or frameworks will keep your site lean and fast.

All of your CSS, HTML and browser API knowledge will continue to serve you for the years to come. In a few years, people will be arguing about a new magic framework.

andoando 9/2/2025|||
Personally I love Sveltekit.

Theres some things to learn but once you do its amazingly simple and powerful.

That said I havent tried Astro, Nuxt

nop_slide 9/2/2025|||
You should definitely run through the Rails tutorial at least. I rediscovered Rails this last year (and checked out Django/Laravel) and it's really awesome these days.

So many things built in ready to go.

xdanger 9/2/2025|||
You should really try Nuxt (a vue framework, like Next.js but better).
Aldipower 9/2/2025||
I had to use a webpage built with Nuxt recently. This thing was completely messed up.
xdanger 9/4/2025||
Mess ups are not framework dependant.
Aldipower 2 days ago||
To some extend they are, sure. A framework is there to assist and help you. If you mess things up, then to some extend the framework wasn't very helpful or even distracting.
infamia 9/2/2025|||
That sounds like a good candidate for Django using either Datastar or HTMX with web components (Lit/React/VanillaJS) as an escape hatch for really interactive bits. Instagram, Threads, Doordash, EdX, Octopus Energy, etc. have all running Django at scale for years.
gg2222 9/2/2025||
SolidStart
999900000999 9/2/2025||
Modern development in a nutshell.

You want to use something full of abstractions to the point you have no idea how it actually worked.

You did this to save time.

Then when issues occur it's someone else's fault.

That said, let me pass in a flag to get my dev logs in prod. That's ultimately what the author wants.

willvarfar 9/2/2025|
reminds me of this talk https://www.youtube.com/watch?v=SxdOUGdseq4 :)
heldrida 9/2/2025||
A lot of companies have Nextjs as a requirement, you can see it in the job posts. It's almost like React = Nextjs, where they don't even mention React. There are developers out there who are highly invested in Vercel's business. Ultimately, the dev teams are responsible for making these decisions.

I've encountered issues based on Nextjs in a few projects where the best approach was to eliminate it.

The outcome was nicer and higher development satisfaction.

If you dare to say that you had to get rid of Nextjs from a particular project, during a job interview, you're done!

adamddev1 9/2/2025||
I talked to a computer science student who told me that React is old, no one is using that anymore. He said now NextJS is the thing to use. No matter how hard I tried to explain to him that NextJS is a framework that uses React, he would not listen or understand. Scary times ahead.
avisser 9/3/2025||
NextJS is web-scale.
abustamam 9/2/2025|||
I think it's actually a good conversation starter. "I had to get rid of [popular framework/tool]."

Possible follow up questions:

- what led your team to want to remove it? - what was involved in removing it? - what did you replace it with? - what makes the new thing better than the old thing? - how did you evaluate that spending X days/weeks/months to remove it was worth the time that could have been spent on developing features?

I think all frameworks and tools have their time and place, and knowing when and how to use them is important.

If a company can't understand this then I wouldn't want to work for them.

christophilus 9/2/2025||
It would be a point in your favor if I was interviewing you. In fact, telling that anecdote may be a good way to weed out koolaid-drinking companies.
w3news 9/2/2025||
Next.js is indeed not very open for feedback. Next.js is also opinionated. So if you are using Next.js, you can use what they have and do it their way. If there is something, just wait...

For me, it isn't a framework I want to use in any production environment. Your system is too much depending on something you have no influence on. Like in your own code, it is good to decouple, don't make things depend too much on something, not in your own code, but also on external code like frameworks and libraries.

That is why I prefer to build things like I can (kind of) easy drop my dependencies, for what reason, and use something else, or build it in my own codebase. If some framework doesn't allow it, and you have to work it their way, and is the base of everything, that should be a big red flag.

kundi 9/2/2025||
I’ve always felt that Vercel’s way has had fundamental flaws at its core “philosophy” and their approach to creating shiny objects from outside that stink from inside.

Unfortunately incompetence of developers to see beyond has brought the web to the point that every React developer has dealt with Nextjs at some point.

What are the alternatives beyond Vite and Remix?

blitz_skull 9/2/2025||
Rails and Laravel are still big players in the space that have only gotten better with time.
fourside 9/2/2025|||
> What are the alternatives beyond Vite and Remix?

On more than one occasion I’ve seen someone refer to Vite as an alternative to Next.js. Isn’t Vite a bundler and Next and Remix frameworks? How is Vite an alternative to these?

keysdev 9/2/2025||
Solid and sveltekit
justinator 9/2/2025|
The only thing worse than Next.js is trying to be a subcontractor for a startup that’s building their MVP in Next.js. I will be taking no further questions.
More comments...