r/node • • 8d ago

God damnit, no stability

Bun acquired by Anthropic and rewritten by AI

Deno acquired by Cloudflare

Prisma had a huge breaking change (again) on prisma 8 and rewritten by AI

NextJS Pages Router -> App Router breaking change and “use client”, “use server”

NestJS v12 changed all the tooling/bundler and let’s hope the main maintainer Kamil stay alive the next 10 years

PassportJS dead
TypeORM dead

How anyone can maintain a big project without rewriting it every 2 weeks or trust any JS open source project for the long term ? 🤪

278 Upvotes

160 comments sorted by

393

u/wootangAlpha 8d ago

Node/express - 15+ years in prod. Still open, still free, reliable. Production Stack should be boring as a brick. Newfangled stuff is for side projects and things you don't mind breaking and rewriting.

107

u/BrilliantAd6010 8d ago

⬆️ This. We’ve been using Node.js/Express for nearly 10 years at my job. Just updated to v5 within the last year. Having a stable, boring production stack you are on-call for is so nice.

7

u/barrard123 7d ago

Any chance you guys are hiring?

20

u/trosis 8d ago

Agreed, stick to the basics and you’re not gonna have a problem. I run all of my production environments this way.

22

u/Noctttt 8d ago

Same. Node.js/Express for 4 years now, run like a charm

12

u/zurnout 8d ago

For awhile it looked like Express wasn’t going to make it either so you were just lucky

4

u/inglandation 8d ago

So true. I’ve been ignoring anything outside this stack for years and everything works great.

1

u/dooburt 8d ago

I’ve been using this stack for nearly 15 years.

1

u/RealAdvertising5324 8d ago

I get your point. OP also mentioned some libraries like TypeORM and Passport. Where you not using this? Did you implement your own solution? Do you use TypeScript? I'm curious.

1

u/GrandOpener 5d ago

I mean for real, if you switched from node/express to bun/nextjs then you already decided you wanted to redo a bunch of stuff just for fun. You can’t be mad just because they make you do it twice.

1

u/GhostLexly 7d ago

Which ORM are you using ? plain SQL Queries i guess ?

3

u/GrandOpener 5d ago

Yes exactly. Plain SQL is exactly the “boring but battle tested for years and years” equivalent. It’s not as hard or cumbersome as many people make it out to be.

128

u/queen-adreena 8d ago

Not hitching your wagon to VC-funded startups will go a long way to reducing dependency churn.

16

u/jiggity_john 8d ago

This is what I try to tell people. All the really good open source projects are truly open, and when they have corporate contributors, they are usually only a part of the committee.

2

u/psayre23 8d ago

While I totally agree with you, the other end of the spectrum is a library some person wrote in their spare time. You can’t depend on that either; aside from the pile up of bugs, it could also be totally rewritten by AI when they find themselves with a spare weekend and a little motivation.

The sweet spot is a large community backed project. But not every project can be curl.

8

u/winky9827 8d ago

I can't tell you how many bloggers or industry experts I stopped listening to / reading early in my career because they were hype chasers.

1

u/best_of_badgers 8d ago

The goal of most startup founders is to sell. That’s how they make their actual money from the company’s value. They’re not pulling huge paychecks.

154

u/blazeit420casual 8d ago

You want stability yet you ignore the good ole React/Express/Node stack.

38

u/MyLedgeEnds 8d ago

Back in my day we called it the MEAN stack.

21

u/blazeit420casual 8d ago

It was MERN for me. Dropped that NoSQL bullshit pretty quickly though.

24

u/AntDracula 8d ago

PERN is ascension 

4

u/iam_batman27 8d ago

PERN all the way

4

u/blazeit420casual 8d ago

As it should be.

2

u/Competitive_Aside461 8d ago

Postgres?

4

u/AntDracula 8d ago

You betcha

1

u/Competitive_Aside461 8d ago

BTW, why not MySQL?

6

u/AntDracula 8d ago

I've consistently found PG to be superior to MySQL in pretty much every imaginable way, without even discussing licensing.

5

u/conflare 8d ago

NoSQL is great, for the handful of niche cases it's good for. And (tempting the down votes), that handful of cases are things where Postgres is an absolute pain. No, JSONB is not the same.

2

u/MyLedgeEnds 8d ago

Had a project start off on Postgres but the db kept crashing because the use case involved deleting & recreating hundreds of MB of records. Garbage collection kept murdering the jobs & no amount of tuning could solve it. Ended up switching to NoSQL & cutting a third of the costs with dramatic speedups. The technology has its place!

49

u/MrWewert 8d ago

MongoDB and Angular did not age well.

5

u/jumurtka 7d ago

False! MongoDB is web scale.

15

u/tonjohn 8d ago

Angular is fantastic! It’s had a huge number of improvements over the last few years - you should check it out!

14

u/Shehzman 8d ago

Yup for an enterprise grade project, I think Angular is much better than React.

4

u/conflare 8d ago

For an enterprise grade app, direct DOM manipulation is better than React.

(I kid, but only a little.)

6

u/MyLedgeEnds 8d ago

The day they figure out HTML imports is the day that Custom Elements seizes the throne

5

u/sod0 8d ago

Just not "stable" at all! Since v2 Angular only ever guaranteed 1 year of backwards compatibility.
That's not what I would call stable. React was may more stable (also because it is bare-bones as fuck and does not even have an included router).

8

u/PeEll 8d ago

I've maintained dozens of apps from 2.0 to the latest v22. Breaking changes in the parts of the API you spend most of your time in have minimally changed and mostly automatically migrated for you.

-3

u/sod0 7d ago

Sorry this is just not true. Angular change every single part of the framework - including the templating engine! The most basic fundamental piece which requires you to touch every single component ever written.

3

u/PeEll 7d ago

All of the template syntax written 10 years ago still work today.

eg using <x *ngIf=""> still works today. https://angular.dev/api/common/NgIf

2

u/xzhan 7d ago

The underlying engine has been evolving for the better and there are new syntax options, but the old template syntax still works.

Besides, Angular have been offering migration commands for ages. ng generate @angular/core:control-flow has been around for more than two years, iirc.

3

u/unbanned_lol 8d ago

Nah, I'm going to keep distancing myself from google.

2

u/tonjohn 8d ago

Because facebook and Vercel are such upstanding companies

2

u/unbanned_lol 7d ago

React is not maintained by facebook.

1

u/who_am_i_to_say_so 8d ago

Mongo cloud is just plain expensive compared to the many Postgres cloud alternatives out there.

2

u/amtcannon 8d ago

The A in MEAN really stank up the place, especially with its breaking changes

1

u/skyedearmond 6d ago

Any love for the old LAMP stack? (Yes, I’m aware it’s kind of apples and oranges)

0

u/rafark 8d ago

React is mostly stable, but not that stable. Yes, I’m still sour I had to migrate from class based components.

31

u/MysteriousCoconut31 8d ago

The boring stuff never lets me down.

Node is like docker right now. These language specific proprietary wrappers felt like a threat and then you keep trucking as they fade away.

19

u/zarkwonz 8d ago

Stop using heavy handed flavor of the month frameworks.

My six person team has been using Express and a SQL query builder since 2018. We built some light weight abstractions around them and have been doing just fine.

14

u/Fritzy 8d ago

Don't chase VC funded open source projects.

26

u/EasyMode556 8d ago

Gotta go with the greatest hits, node + express on the back and vanilla react on the front if you want the most stability

12

u/ccb621 8d ago
  • TypeORM is active after being handed to new maintainers about a year ago. 
  • PassportJS is largely feature complete.

18

u/jarzebowsky 8d ago

Have you checked typeorm? Since the guys behind vendure.io started working on it it’s getting updates frequently and they even reached 1.0 some time ago with small rebranding.

NestJS 12 did not change everything - they added new options but you still can use class validators and/or eslint etc.

NextJS - maybe I’m living in different universe but over a year ago when started new project App Router was already a mature solution to go with?

8

u/Ceigey 8d ago

This, TypeORM has been getting releases again.

NestJS also seems quite stable as long as you avoid abstraction leak I think. Which is not a given.

9

u/Low-Phone361 8d ago

Fastify is still better than express. Also stable.

2

u/Pierma 6d ago

This. Once the plugin / hook system clicked I really can't look back. Matteo Collina is a fucking beast

18

u/ecares 8d ago

Until we find a sustainable way to fund open source tools, the problem will exist

0

u/HappyWolff 7d ago

Idea: help them out by pointing your LLM-leftover usage at their project before they reset. (And review it manually, with more models and with humans).

1

u/ecares 7d ago

Go for it

10

u/Born-Cause-8086 8d ago edited 8d ago

The Next.js App Router was introduced a long time ago, before these AI rewrite trends, and it is quite stable and works like a charm. I maintain a couple of Next.js live apps and have never had any issues on v16.

3

u/T-J_H 8d ago

And the pages router didn’t go away.. not sure what OP is going on about in that example

3

u/VariousTailor7623 8d ago

Nextjs pages is 100% still alive

3

u/unbanned_lol 8d ago

Always been a fan of vanilla myself. Sprinkle in some open source npm libraries, and I'll never have this issue.

Tastes soooooo good.

6

u/RedShift9 8d ago

We are doing it a bit to ourselves... Always chasing the new and shiny, but also don't want to pay for anything. 

17

u/reyarama 8d ago

Read up on clean architecture and ports and adapters little bro. Frontend/JS devs are so cursed

4

u/brick_is_red 8d ago

Even using clean architecture, you’d still have to rewrite code when your dependencies introduce breaking changes. No?

7

u/OkAerie7822 8d ago

yes, but the rewrite is one adapter folder instead of 60 files, which is the whole point. same company, two services: in one, typeorm was imported straight into 60 files and leaving it took about 3 weeks. in the other, orm, auth, queue and mail each sat behind an interface in the domain layer with one adapter, and swapping passport there took a day. extra cost is about an hour per dependency up front. caveat: don't wrap everything, lodash or date-fns aren't worth it, only the things with their own lifecycle and opinions.

7

u/reyarama 8d ago

Yes, but you wouldn’t complain about it since your code is built to be adaptable to change

9

u/cmiles777 8d ago

Use Go

2

u/breadgolemwaifu 8d ago

Manually unroll exception bubbling*

2

u/littleSparrow31 8d ago

That’s why projects either headed by one person who is prone to selling out, or a corporation prone to only caring about profit are unstable. Projects like Node that have a neutral governing body typically have more stability.

2

u/dvidsilva 8d ago

whose gonna acquire mine :'(

2

u/_Feyton_ 8d ago

This is exactly why big companies and experienced devs don't greenlight shiny new frameworks and do stick with boring reliable choices

2

u/Double-Journalist877 8d ago

Oh dang. Here i was just struggling to keep up with the AI supercharged bug hunting trend and the correct axios version

2

u/Namiastka 8d ago

Within my client we use Node with fastify/express and knex/keysely and dont have those problems :)

While i know with those stacks it wasnt at this point hype train, use whats reliable and long om the market

2

u/Any-Ring6621 7d ago

NextJS is the garbagest of garbage software

5

u/chic_luke 8d ago

I only use node for the frontend and not for the backend. At some point I became tired of chasing trends and I used plain npm and Vue, only got bit by PrimeVue but pretty stable route so far. Stopped chasing the new and shiny after I got bit a few too many times by switching to the latest tooling

Beside, something that I haven't really seen in this comment section is the fact that bun, demo, pnpm etc were solving a problem that doesn't exist anymore. Node is fine. It can be improved upon, but its tooling is no longer so bad you're forced to switch to alternatives.

2

u/lapubell 8d ago

What's your backend preference? I'm in the same boat as you, never really been a fan of node on the server.

6

u/chic_luke 8d ago

Current job, .NET 10 on Linux. I don't have many complaints. Development experience with Rider is good and runtime performance is really solid, minus the GC pauses at very critical levels of load that are a problem that persists across most stacks. Personal preference though, it's a toss up between plain Go and Elixir with the Phoenix framework. I like using composition more than I do using inheritance. But .NET is a decent server if you want OOP.

(edit) I'd use Rust with Axum for the most performance-critical services if you have any whenever the GC hinders you

3

u/latinTravelPro 7d ago

This right here. Memory management/ garbage collection is so much better with .net, better stability, better performance.

2

u/716green 7d ago

Node is inherently server-side, are you just talking about npm packages?

1

u/mavenHawk 7d ago

bun and deno yes, but pnpm is a package manager that is still useful. Not also a runtime like bun and deno

1

u/chic_luke 7d ago

I'm aware, I listed that in the list because the latest release is a vibeslop rewrite, which really reduces the pull

3

u/BDHarrington7 8d ago edited 8d ago

Yeah the Deno announcement was disappointing, but not surprising. If it's been around for a long time, there's a good chance that it will still be around in the future. That's why node and express keep getting plugged: they're old, mature, boring. There has to be a really _really_ compelling reason to adopt a new tech stack (not just something like 0.3% faster); unfortunately Deno's security and distributed dependency approach wasn't it.

Having worked with node since the 0.10 days, JS as a language is incredibly stable. Stuff that was written over 20 years ago still works. What you're complaining about is the stuff build around it: libraries, runtimes, etc.

2

u/soldture 8d ago

Js was always like this, running from one shiny thing to another

4

u/michaelfrieze 8d ago

I still just use node and pnpm.

2

u/michaelfrieze 8d ago edited 8d ago

I use tanstack router for react or tanstack start if I want tanstack router + server functions & SSR. I've also been using Effect recently. I stopped using Prisma years ago. I've been happy with Drizzle.

I hate working with Nest. I prefer something like hono or even express is still fine. I liked Elysia too.

5

u/prehensilemullet 8d ago

Drizzle is still pretty new, made significant breaking changes before their v1.  They’re not VC backed though, at least

1

u/jonpacker 8d ago

Good to have some alternatives cooking though. For the projects I've used it on I'll be sticking to Prisma 6 as long as possible. When the time comes that I can no longer do that I'll be switching to an alternative rather than upgrading. It's sad though, I've been super happy with Prisma and it's a shame to see it trashed the way it has been in 7 and 8.

3

u/oceantume_ 8d ago

Sometimes I feel like modernizing my stack but then I get into a rabbit hole of all those techs you just named and more and the exploration fatigue alone discourages me 

3

u/michaelfrieze 8d ago

tanstack router is just a react SPA framework so there isn't much to learn. Even tanstack start is quite simple. It's just tanstack router with server functions. It's like having tRPC built-in to tanstack router. It also allows you to enable or disabled SSR per route. So I might enable it only for routes that are marketing pages.

Effect is quite difficult, but after using it for a while I can't go back. You could also try something like neverthrow.

Drizzle is really a pretty simple ORM. It's more minimal compared to Prisma.

Nest is kind of insane. I don't get why people try to use Node this way. Just use Java or something.

Hono is pretty easy to pick up if you are used to express and it's great if you are using cloudflare. It's the default framework for cloudflare workers, but you can use it for more than just cloudflare. It works on any node server.

2

u/xavier86 8d ago

Pnpm 12 is a rust vibe coded rewrite. I stick with 11

3

u/michaelfrieze 8d ago

If it works then I don't really care, but yeah 11 has been fine for me.

1

u/vincentdesmet 8d ago

still on v11 and learned v12 supports python and cargo as well as node versioning

wondering if anyone tried it? we manage a large cross language monorepo and mise for dotnet/jvm/.. as well as node

feels like pnpm is doing too much?

2

u/invisible_shrek 7d ago

Just don’t have JS on a server? Problem solved.

1

u/PuzzleheadedFix8366 8d ago

in elixir world of course

1

u/RealKawayake 8d ago

everything still work and you don't have to update your libs every day

1

u/GenazaNL 8d ago

NextJS "use client", "use server"

That's not Next.js specific, that's React

1

u/tarwn 8d ago

I tracked the bug count on TypeORM for years when I made the mistake of using it on a project. They were losing ground the whole time. I was surprised a year or so ago when I went to look at it again and saw they had caught up. The concern I had is that AI uses the surrounding code to influence new code, so I'm not sure my confidence today would be any higher than it was when there were (especially when the top open bug right now is "upsert updates the primary key of an existing record in postgres").

1

u/d33pdev 8d ago

Interesting. I built something I call NativeRuntime that uses embedded QuickJS and native C "adapters" to support any native lib you want. I only found these guys when I was about 5 months into my NR build - https://txikijs.org/. Same, nearly same, architecture and they're more mature than my NR.

But, the density (esp mem use when processing millions of messages from my event bus) is unreal. It's way slower than V8 when your JS is running but my whole idea is - use JS to keep it easy to write simple app logic and get native performance for everything else.

And yeah, the big tech and AI borg is assimilating everything atm... It was a PITA to build my own runtime but now I don't worry about all this systematic destruction of the industry (memory starve, etc etc)...

I'll post here if anyone wants a peek/try it soon. It's way too WIP and I'm shipping a platform so I'm too busy to even think about managing OSS right now. But, it will be opened when I have time.

1

u/who_am_i_to_say_so 8d ago

The age old JavaScript problem. It was a problem before AI, so many breaking changes constantly. If you’d put a project aside for 6 months, you’d essentially have to start over if you continue. Now shite gets deprecated faster than ever.

Progress is a good problem, though.

1

u/abeebola 7d ago

TypeORM dead? How so?

Didn't the library reach v1.0 just a few months ago?

1

u/Suitable-Ad5348 7d ago

Prisma 8 breaking again while TypeORM is already cold in the ground is too real, you literally can't take a two-week vacation without your dependency tree turning into archeology.

1

u/MegaComrade53 7d ago

I've not heard of passportjs being dead. It does everything it needs to do so it makes sense there isn't a lot of active development on it. If it ain't broken don't fix it

1

u/DinTaiFung 7d ago

did some react and angular. kind of unsatisfying and i almost fell into a state of ennui.

But it was Vue that made me more productive. and it was fun! (I briefly flirted with Svelte; very nice framework.) 

Anyway, vite and bun for tooling + vue on the front end. very stable and very fast.

Several years ago i switched node/deno on the backend with Go. Never looked back. Go is fantastic. And deploying Go executables is a breeze!

1

u/Responsible-Offer724 7d ago

What you talking about just don’t be a js hipster

1

u/boldbuilt 7d ago

add react router and remix to that

1

u/rcls0053 7d ago

All reasons why I essentially burned out with Node.js and really love Go now

1

u/aturaden 7d ago

Let me correct it for you:

  • Bun acquired by Anthropic is a good thing for Bun, and the AI rewrite is much better than the latest Zig version. Bun being actively developed and funded is good for Node. We need competition
  • Why would anyone use Prisma if Drizzle exists
  • Next.js app router was released literally 4 years ago
  • Nest.js v12 changes like ESM support were in everyone's wishlist for years
  • Passport.js dead since when, 2020? Anyway, better-auth exists
  • Typeorm dead? Not true

1

u/wings13 6d ago

What's going on with typeorm?

1

u/CuriousAgent7678 6d ago

You’re only realising this now?

For the past 10 years I’ve been saying the JavaScript community is an adhd kid who’s drinking too much red cordial

1

u/szescio 6d ago

Since the dawn of time, the javascript ecosystem has fully deprecated everything and reinvented itself about annually

1

u/AsidK 6d ago

App router wasn’t a breaking change and is quite stable

1

u/LowLifeArcade 6d ago

Just stick with Node and Express and some other long core libs and you're good. You don't need all these fancy things that are just trying to get money by being aquired.

1

u/Loose-Counter9652 6d ago

this is more of a "too many dependencies" problem than a stability problem imo. if your core logic isnt tightly coupled to framework internals, major version bumps are usually just a weekend not a rewrite

1

u/Averroiis 5d ago

Don't worry brother, next model will fix the mistake's of old one, and produce a new issues for upcoming one to handle ....,

1

u/menglinmaker 5d ago

Tanstack? In an age of AI, good typed libraries prevent errors. Their libraries tend to have a very extensive test suite

1

u/Coffee_Crisis 8d ago

... use node, don't use nestjs

2

u/PrydwenParkingOnly 8d ago

NestJS has been stable for like 8 years?

0

u/Coffee_Crisis 7d ago

Yeah but its bad

1

u/PrydwenParkingOnly 7d ago

We use it in enterprise grade software in the role as BFF. I think it comes pretty close to .NET which we use in the layers behind the BFFs.

0

u/Coffee_Crisis 4d ago

Enterprise software is bad

1

u/simple_explorer1 8d ago

Deno Will be shut down as the news, so it will be our of the picture

-2

u/Z33PLA 8d ago

You've got AI under your hand, migrate to another language. I know it isn't the point but what is holding you? Lets eat those downvotes😄

4

u/botle 8d ago

They'd have to maintain it themselves and make sure they patch all the vulnerabilities that get discovered in the original, and also the vulnerabilities possibly introduced by the migration. And do all the future updates to keep in long with dependencies that get deprecated.

-2

u/jwalker107 8d ago

Rewrite in Rust, bro

-1

u/Anxious-Insurance-91 8d ago

You want stable? Use Java

1

u/biinjo 8d ago

Lol java is about the only thing that crashes my computer from time to time.

1

u/FabioTheFox 8d ago

I love when Java devs say Java is so super stable and then every framework and library in there just keeps introducing breaking changes

1

u/Anxious-Insurance-91 8d ago

I'm not a java dev, I'm just a guy that has seen that if you want something that you just throw in there an don't think about it, meaning it's boring tech, you use java

1

u/FabioTheFox 8d ago

Personally I prefer Go or C# for these kinds of things (technically C++ too but it's too much of a hassle on the backend tbh) If i wanted to work with the JVM I'd probably use Kotlin, great language and you can still take advantage of the Java frameworks if you wanted to

1

u/Anxious-Insurance-91 8d ago

I mean yeah, if you know other boring tech, or want to keep the JVM go for kotlin

-4

u/sudo-maxime 8d ago

Javascript ecosystem is a dumpster fire. I stopped building products I care about with these technologies.

7

u/whostolemyhat 8d ago

Well thanks for dropping by the Node sub to let us know

-2

u/nicolasdanelon 8d ago

Easy. Use Laravel ;)

0

u/Fidodo 8d ago

PassportJS deserved to die. That library was the cause of so much stress for me.

-1

u/[deleted] 8d ago

[deleted]

3

u/jonpacker 8d ago edited 8d ago

Bun

stable

Not sure if you're just a bot or you genuinely don't know what stable means. Bun is, more than anything else mentioned in this thread, the poster boy for instability.

0

u/[deleted] 8d ago edited 8d ago

[deleted]

4

u/jonpacker 8d ago

Cool. That has nothing to do with the stability of bun (and I’m still not convinced you’re a human).

-12

u/horizon_games 8d ago

Choose better tech?

Alpine.js and HTMX still solid as rock

-8

u/Aggravating_Room9014 8d ago

Js should not exists in backend or infra, like you said is too inestable, i prefer go or even Java for serious backend, in this AI era is much more easy than before

9

u/ReticulatedSpline78 8d ago

People have been saying this for decades. Yet, it’s still a very viable solution for backend. Weird.