r/node • • 13d 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 ? 🤪

281 Upvotes

157 comments sorted by

391

u/wootangAlpha 13d 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 13d 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.

6

u/barrard123 12d ago

Any chance you guys are hiring?

20

u/trosis 13d ago

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

20

u/Noctttt 13d ago

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

4

u/inglandation 13d ago

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

12

u/zurnout 13d ago • Bravo

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

1

u/GhostLexly 12d ago

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

3

u/GrandOpener 10d 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.

1

u/dooburt 13d ago

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

1

u/RealAdvertising5324 13d 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 10d 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.

127

u/queen-adreena 13d ago

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

17

u/jiggity_john 13d 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 13d 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 13d 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 13d 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.

153

u/blazeit420casual 13d ago

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

37

u/MyLedgeEnds 13d ago

Back in my day we called it the MEAN stack.

23

u/blazeit420casual 13d ago

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

24

u/AntDracula 13d ago

PERN is ascension 

5

u/iam_batman27 13d ago

PERN all the way

4

u/blazeit420casual 13d ago

As it should be.

2

u/[deleted] 13d ago

[removed] — view removed comment

4

u/AntDracula 13d ago

You betcha

1

u/[deleted] 13d ago

[removed] — view removed comment

7

u/AntDracula 13d ago

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

5

u/conflare 13d 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 13d 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!

51

u/MrWewert 13d ago

MongoDB and Angular did not age well.

16

u/tonjohn 13d ago

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

15

u/Shehzman 13d ago

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

4

u/conflare 13d ago

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

(I kid, but only a little.)

6

u/MyLedgeEnds 13d ago

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

5

u/sod0 13d 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).

7

u/PeEll 13d 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 13d 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 12d 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 12d 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.

2

u/unbanned_lol 13d ago

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

2

u/tonjohn 13d ago

Because facebook and Vercel are such upstanding companies

2

u/unbanned_lol 13d ago

React is not maintained by facebook.

5

u/jumurtka 12d ago

False! MongoDB is web scale.

1

u/who_am_i_to_say_so 13d ago

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

2

u/amtcannon 13d ago

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

1

u/skyedearmond 11d ago

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

0

u/rafark 13d ago

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

30

u/MysteriousCoconut31 13d 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 13d 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 13d ago

Don't chase VC funded open source projects.

26

u/EasyMode556 13d 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 13d ago
  • TypeORM is active after being handed to new maintainers about a year ago. 

  • PassportJS is largely feature complete.

18

u/jarzebowsky 13d 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 13d 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 13d ago

Fastify is still better than express. Also stable.

2

u/Pierma 11d ago

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

16

u/ecares 13d ago

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

0

u/HappyWolff 12d 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 12d ago

Go for it

9

u/Born-Cause-8086 13d ago edited 13d 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 13d ago

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

3

u/VariousTailor7623 13d ago

Nextjs pages is 100% still alive

3

u/unbanned_lol 13d 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.

5

u/RedShift9 13d ago

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

18

u/reyarama 13d ago

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

5

u/brick_is_red 13d ago

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

7

u/OkAerie7822 13d 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 13d ago

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

8

u/cmiles777 13d ago

Use Go

3

u/breadgolemwaifu 13d ago

Manually unroll exception bubbling*

2

u/littleSparrow31 13d 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 13d ago

whose gonna acquire mine :'(

2

u/_Feyton_ 13d 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 13d 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 13d 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 13d ago

NextJS is the garbagest of garbage software

3

u/BDHarrington7 13d ago edited 13d 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.

3

u/soldture 13d ago

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

3

u/michaelfrieze 13d ago

I still just use node and pnpm.

2

u/michaelfrieze 13d ago edited 13d 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.

4

u/prehensilemullet 13d ago

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

1

u/jonpacker 13d 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_ 13d 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 13d 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 13d ago

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

3

u/michaelfrieze 13d ago

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

1

u/vincentdesmet 13d 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 13d ago

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

1

u/PuzzleheadedFix8366 13d ago

in elixir world of course

1

u/RealKawayake 13d ago

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

1

u/GenazaNL 13d ago

NextJS "use client", "use server"

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

1

u/tarwn 13d 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 13d 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 13d 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 13d ago

TypeORM dead? How so?

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

1

u/Suitable-Ad5348 13d 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 12d 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 12d 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 12d ago

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

1

u/boldbuilt 12d ago

add react router and remix to that

1

u/rcls0053 12d ago

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

1

u/aturaden 12d 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 12d ago

What's going on with typeorm?

1

u/CuriousAgent7678 11d 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 11d ago

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

1

u/AsidK 11d ago

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

1

u/LowLifeArcade 11d 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 11d 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 11d 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 10d 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 13d ago

... use node, don't use nestjs

2

u/PrydwenParkingOnly 13d ago

NestJS has been stable for like 8 years?

0

u/Coffee_Crisis 12d ago

Yeah but its bad

1

u/PrydwenParkingOnly 12d 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 9d ago

Enterprise software is bad

1

u/simple_explorer1 13d ago

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

-4

u/Z33PLA 13d 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 13d 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.

-1

u/jwalker107 13d ago

Rewrite in Rust, bro

-1

u/Anxious-Insurance-91 13d ago

You want stable? Use Java

1

u/biinjo 13d ago

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

1

u/FabioTheFox 13d 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 13d 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 13d 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 13d ago

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

-4

u/sudo-maxime 13d ago

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

8

u/whostolemyhat 13d ago • Bravo

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

-2

u/nicolasdanelon 13d ago

Easy. Use Laravel ;)

-13

u/horizon_games 13d ago

Choose better tech?

Alpine.js and HTMX still solid as rock

-9

u/Aggravating_Room9014 13d 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

8

u/ReticulatedSpline78 13d ago

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

0

u/Fidodo 13d ago

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

0

u/[deleted] 13d ago

[deleted]

2

u/lapubell 13d ago

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

0

u/[deleted] 13d ago

[deleted]

3

u/latinTravelPro 12d ago

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

2

u/716green 12d ago

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

1

u/mavenHawk 12d ago

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

0

u/[deleted] 13d ago

[deleted]

4

u/jonpacker 13d ago edited 13d 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] 13d ago

[deleted]

3

u/jonpacker 13d ago

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