{"slug": "node-js", "name": "Node.js", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "Open-source JavaScript runtime built on V8 for running code outside the browser.", "recommenders": 11, "commenters": 33, "warners": 6, "score": 9.239, "rising": 2.71, "first": "2025-12-02", "latest": "2026-10-24", "why": "HN commenters like Node.js for its native TypeScript type stripping, which lets them skip the compile step, and for being stable and good enough for most backend work.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 12, "neutral": 13, "compare": 3, "warn": 6}, "spark": [0, 0, 0, 0, 0, 0, 2, 1, 4, 1, 0, 4], "listed": true, "loved": ["TypeScript support", "Stability"], "caveat": "Ecosystem churn", "short_quote": "I think I'll probably just go back to normal Node because it's stable and won't break things like this between minor releases", "icon": true, "domain": "nodejs.org", "github_repo": null, "official_url": "https://nodejs.org", "pricing": "open source", "aliases": ["Node.js"], "verdict": [{"text": "HN commenters like Node.js for its native TypeScript type stripping, which lets them skip the compile step,", "cites": [{"id": 802780849, "item_id": 50173803, "url": "https://news.ycombinator.com/item?id=50173803", "by": "austin-cheney", "date": "2026-10-20", "stance": "recommend", "quote": "Since both Bun and Node.js start up my large applications about twice as fast as the Typescript compiler executes I don't see any reason to bother.", "excerpt": "I use the Typescript compiler to report errors to the shell, but that's it. Both Bun and Node.js will execute Typescript directly without a compile step. If you are able to write your own front-end bundler then the front-end code also gets the same type stripping from either Bun or Node.js. Since both Bun and Node.js start up my large applications about twice as fast as the Typescript compiler executes I don't see an", "context": "", "use_case": "running TypeScript directly", "switched_from": "", "story": "Tsrs: A Port of TypeScript to Rust"}, {"id": 781418048, "item_id": 48838628, "url": "https://news.ycombinator.com/item?id=48838628", "by": "austin-cheney", "date": "2026-07-08", "stance": "recommend", "quote": "Even for front end code destined for the browser I rely on Node's type stripping.", "excerpt": "Fascinating, but since Node now natively strips the TypeScript type annotations I rarely run the TSC. I really only run it now when I make a major regressive change and need static output from the compiler to see things I have failed to update. Even for front end code destined for the browser I rely on Node's type stripping.", "context": "", "use_case": "running TypeScript via type stripping", "switched_from": "", "story": "TypeScript 7"}, {"id": 782540449, "item_id": 48908778, "url": "https://news.ycombinator.com/item?id=48908778", "by": "umvi", "date": "2026-07-14", "stance": "recommend", "quote": "In node it should be even easier than Go because Node added native type stripping starting with v22[2]", "excerpt": "You don't need a bundler, just a type stripper. And yeah you need a middleware to perform the type stripping, the server won't do it automatically, but it's like 10 lines of code. The basic flow would be something like: 1. Browser requests /js/foo.js 2. Server middleware checks if /js/foo.ts exists 3. If yes, server middleware strips types from the file before returning it In golang I use the go package github.com/ev", "context": "", "use_case": "native TypeScript type stripping", "switched_from": "", "story": "Why Vanilla JavaScript"}, {"id": 768190657, "item_id": 48011916, "url": "https://news.ycombinator.com/item?id=48011916", "by": "cute_boi", "date": "2026-05-04", "stance": "recommend", "quote": "Node.js is also more stable, and it has started supporting TypeScript out of the box.", "excerpt": "I used to be a fan of Bun, but the way it keeps adding bloat makes me seriously doubt its future. Also, it seems like they are doing a lot of vibe coding without taking enough time, which raises other questions. Node.js is also more stable, and it has started supporting TypeScript out of the box. I don\u2019t think Bun will have many advantages after Node 26.", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}]}, {"text": " and for being stable and good enough for most backend work.", "cites": [{"id": 778817585, "item_id": 48676099, "url": "https://news.ycombinator.com/item?id=48676099", "by": "Tiberium", "date": "2026-06-25", "stance": "recommend", "quote": "I think I'll probably just go back to normal Node because it's stable and won't break things like this between minor releases", "excerpt": "To be honest, Deno was cool in the past (I even somewhat promoted it on HN in some comments), but nowadays I'm disappointed in their lackluster approach to stability and testing (specifically in Node compat). I recently hit multiple Node compatibility regressions in Deno that were hard to debug, and it doesn't help that they use Claude for everything now, from actual fixes to writing blog posts (even this one). For e", "context": "", "use_case": "JavaScript runtime", "switched_from": "Deno", "story": "Deno 2.9"}, {"id": 784288048, "item_id": 49018003, "url": "https://news.ycombinator.com/item?id=49018003", "by": "holysantamaria", "date": "2026-07-23", "stance": "recommend", "quote": "Node is already powerful enough and well maintained.", "excerpt": "What makes Bun Bun is all the things that got removed from this project. Node is already powerful enough and well maintained. Why would anyone use this?", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "Cruller: Bun's Zig Runtime, Continued on Zig 0.16"}, {"id": 768264096, "item_id": 48016506, "url": "https://news.ycombinator.com/item?id=48016506", "by": "traderj0e", "date": "2026-05-04", "stance": "neutral", "quote": "The only reason I don't use Bun is I never ran into a situation where Node didn't cut it.", "excerpt": "So who controls NodeJS? https://openjsf.org/governance has Microsoft as the chair. And Microsoft owns npm. It's kinda hard to avoid a corp controlling these tools. The author seems more focused on the thing where Anthropic fights OpenClaw usage unless you have the right billing set up for that. Frankly I just don't care about those complaints, all the LLM services want you to set up a non-subsidized billing method to", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}, {"id": 759702737, "item_id": 47481421, "url": "https://news.ycombinator.com/item?id=47481421", "by": "kigiri", "date": "2026-03-22", "stance": "neutral", "quote": "I work on a ~9y old nodejs codebase, have none of those issues", "excerpt": "I work on a ~9y old nodejs codebase, have none of those issues, we have 8 dependencies, this is fully resolved tree. One to generate zip files, one for markdown parsing, connecting to postgres, etc... most of them have no sub dependencies. We always reach out first to what nodejs lib have, try to glue ourself small specific piece of code when needed. The app is very stable and we have very few frustrations I used to ", "context": "works on a ~9y old nodejs codebase", "use_case": "backend codebase", "switched_from": "", "story": "The Three Pillars of JavaScript Bloat"}]}, {"text": " The most common complaint is a fragile, fast-churning ecosystem,", "cites": [{"id": 790007617, "item_id": 49375476, "url": "https://news.ycombinator.com/item?id=49375476", "by": "sunsetSamurai", "date": "2026-08-20", "stance": "warn", "quote": "getting tired of the nodejs ecosystem fragmentation and how fragile things feel", "excerpt": "I recently pivoted to Rust for the backend development, after getting tired of the nodejs ecosystem fragmentation and how fragile things feel. Bun seems very interesting since it allows you to do so many things without pulling in 3rd party libraries and bundlers? Is anybody using it instead of nodejs? how's the experience so far? I might have to give it a try. Yes, I know there's probably better options than Rust for", "context": "", "use_case": "backend development", "switched_from": "", "story": "Bun 1.4"}, {"id": 784576241, "item_id": 49036015, "url": "https://news.ycombinator.com/item?id=49036015", "by": "RattlesnakeJake", "date": "2026-07-24", "stance": "warn", "quote": "I'm not sold on NodeJS", "excerpt": "Or at least the culture around JavaScript . I love writing JavaScript. I like React well enough. I'm not sold on NodeJS, though I'll accept that its struggles are no different than any other package manager. I just wish the whole thing would stand still for a minute. It's seriously exhausting to keep up with all of the deprecations, rewrites, new \"best\" frameworks, etc.", "context": "", "use_case": "", "switched_from": "", "story": "Why is programming so captivating, yet so agonizing?"}]}, {"text": " along with a bad reputation and a dislike of npm.", "cites": [{"id": 793609377, "item_id": 49600586, "url": "https://news.ycombinator.com/item?id=49600586", "by": "excsn", "date": "2026-09-07", "stance": "warn", "quote": "Node.js has a bad reputation, full stop.", "excerpt": "I ditched Node.js for the most part, I don't interact with it outside of outside work. SnapFire FSR is a representation of what I wanted for a long time, but nobody has done it the way I would like. It's a bit more than I envisioned, if I had to be honest, hah. Node.js has a bad reputation, full stop. Heck, some companies don't want Node.js running as a web service without a sidecar process to talk to other internal ", "context": "", "use_case": "web service runtime", "switched_from": "", "story": "SnapFire FSR: Write TypeScript for Web. Run Rust. Ditch Node.js"}, {"id": 747209634, "item_id": 46700602, "url": "https://news.ycombinator.com/item?id=46700602", "by": "burntoutgray", "date": "2026-01-20", "stance": "warn", "quote": "Always disliked Node.js and especially npm.", "excerpt": "I use Bun or Deno for my projects. Always disliked Node.js and especially npm. Ryan Dahl created Deno to address his regrets regarding Node.js shortcomings, limitations.", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Was Node.js a Mistake?"}, {"id": 766308353, "item_id": 47894272, "url": "https://news.ycombinator.com/item?id=47894272", "by": "shevy-java", "date": "2026-04-24", "stance": "warn", "quote": "node is pretty awful", "excerpt": "Well ... 17 years ago. \"Over roughly the same period my day job has changed and transitioned me from writing thick clients in Swing to big freaking enterprise web apps.\" I mean, the web kind of won. We just don't have a simple and useful way to design for the web AND the desktop at the same time. I also use the www of course, with a gazillion of useful CSS and JavaScript where I have to. I have not entirely given up ", "context": "", "use_case": "filesystem access from web apps", "switched_from": "", "story": "Why I'm Done Making Desktop Applications"}]}], "praise": [{"label": "TypeScript support", "summary": "Native type stripping lets commenters run TypeScript directly without a compile step.", "quotes": [{"id": 802780849, "item_id": 50173803, "url": "https://news.ycombinator.com/item?id=50173803", "by": "austin-cheney", "date": "2026-10-20", "stance": "recommend", "quote": "Since both Bun and Node.js start up my large applications about twice as fast as the Typescript compiler executes I don't see any reason to bother.", "excerpt": "I use the Typescript compiler to report errors to the shell, but that's it. Both Bun and Node.js will execute Typescript directly without a compile step. If you are able to write your own front-end bundler then the front-end code also gets the same type stripping from either Bun or Node.js. Since both Bun and Node.js start up my large applications about twice as fast as the Typescript compiler executes I don't see an", "context": "", "use_case": "running TypeScript directly", "switched_from": "", "story": "Tsrs: A Port of TypeScript to Rust"}, {"id": 781418048, "item_id": 48838628, "url": "https://news.ycombinator.com/item?id=48838628", "by": "austin-cheney", "date": "2026-07-08", "stance": "recommend", "quote": "Even for front end code destined for the browser I rely on Node's type stripping.", "excerpt": "Fascinating, but since Node now natively strips the TypeScript type annotations I rarely run the TSC. I really only run it now when I make a major regressive change and need static output from the compiler to see things I have failed to update. Even for front end code destined for the browser I rely on Node's type stripping.", "context": "", "use_case": "running TypeScript via type stripping", "switched_from": "", "story": "TypeScript 7"}, {"id": 768190657, "item_id": 48011916, "url": "https://news.ycombinator.com/item?id=48011916", "by": "cute_boi", "date": "2026-05-04", "stance": "recommend", "quote": "Node.js is also more stable, and it has started supporting TypeScript out of the box.", "excerpt": "I used to be a fan of Bun, but the way it keeps adding bloat makes me seriously doubt its future. Also, it seems like they are doing a lot of vibe coding without taking enough time, which raises other questions. Node.js is also more stable, and it has started supporting TypeScript out of the box. I don\u2019t think Bun will have many advantages after Node 26.", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}]}, {"label": "Stability", "summary": "Seen as more stable and less prone to breaking between releases than alternatives like Bun and Deno.", "quotes": [{"id": 778817585, "item_id": 48676099, "url": "https://news.ycombinator.com/item?id=48676099", "by": "Tiberium", "date": "2026-06-25", "stance": "recommend", "quote": "I think I'll probably just go back to normal Node because it's stable and won't break things like this between minor releases", "excerpt": "To be honest, Deno was cool in the past (I even somewhat promoted it on HN in some comments), but nowadays I'm disappointed in their lackluster approach to stability and testing (specifically in Node compat). I recently hit multiple Node compatibility regressions in Deno that were hard to debug, and it doesn't help that they use Claude for everything now, from actual fixes to writing blog posts (even this one). For e", "context": "", "use_case": "JavaScript runtime", "switched_from": "Deno", "story": "Deno 2.9"}, {"id": 768190657, "item_id": 48011916, "url": "https://news.ycombinator.com/item?id=48011916", "by": "cute_boi", "date": "2026-05-04", "stance": "recommend", "quote": "Node.js is also more stable, and it has started supporting TypeScript out of the box.", "excerpt": "I used to be a fan of Bun, but the way it keeps adding bloat makes me seriously doubt its future. Also, it seems like they are doing a lot of vibe coding without taking enough time, which raises other questions. Node.js is also more stable, and it has started supporting TypeScript out of the box. I don\u2019t think Bun will have many advantages after Node 26.", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}, {"id": 759702737, "item_id": 47481421, "url": "https://news.ycombinator.com/item?id=47481421", "by": "kigiri", "date": "2026-03-22", "stance": "neutral", "quote": "I work on a ~9y old nodejs codebase, have none of those issues", "excerpt": "I work on a ~9y old nodejs codebase, have none of those issues, we have 8 dependencies, this is fully resolved tree. One to generate zip files, one for markdown parsing, connecting to postgres, etc... most of them have no sub dependencies. We always reach out first to what nodejs lib have, try to glue ourself small specific piece of code when needed. The app is very stable and we have very few frustrations I used to ", "context": "works on a ~9y old nodejs codebase", "use_case": "backend codebase", "switched_from": "", "story": "The Three Pillars of JavaScript Bloat"}]}, {"label": "Good enough", "summary": "Commenters say Node is low-friction and has met their needs, so they see no reason to switch.", "quotes": [{"id": 778266432, "item_id": 48641652, "url": "https://news.ycombinator.com/item?id=48641652", "by": "esperent", "date": "2026-06-23", "stance": "neutral", "quote": "I'm still using node/npm and it's... fine.", "excerpt": "I'm still using node/npm and it's... fine. Every so often I read these posts and think I should change but node/npm is already a low friction part of my workflow. However, what I have seen is that a lot of other libraries I use have switched to Bun. I haven't seen any that switched to Deno, and so I've been under the impression that Bun is becoming a strong node replacement candidate while Deno is not, or at least th", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "Deno Desktop"}, {"id": 768264096, "item_id": 48016506, "url": "https://news.ycombinator.com/item?id=48016506", "by": "traderj0e", "date": "2026-05-04", "stance": "neutral", "quote": "The only reason I don't use Bun is I never ran into a situation where Node didn't cut it.", "excerpt": "So who controls NodeJS? https://openjsf.org/governance has Microsoft as the chair. And Microsoft owns npm. It's kinda hard to avoid a corp controlling these tools. The author seems more focused on the thing where Anthropic fights OpenClaw usage unless you have the right billing set up for that. Frankly I just don't care about those complaints, all the LLM services want you to set up a non-subsidized billing method to", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}, {"id": 784288048, "item_id": 49018003, "url": "https://news.ycombinator.com/item?id=49018003", "by": "holysantamaria", "date": "2026-07-23", "stance": "recommend", "quote": "Node is already powerful enough and well maintained.", "excerpt": "What makes Bun Bun is all the things that got removed from this project. Node is already powerful enough and well maintained. Why would anyone use this?", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "Cruller: Bun's Zig Runtime, Continued on Zig 0.16"}]}, {"label": "Built-in features", "summary": "Node has added --run, .env loading, watch mode and sqlite.", "quotes": [{"id": 800333809, "item_id": 50020863, "url": "https://news.ycombinator.com/item?id=50020863", "by": "zamadatix", "date": "2026-10-09", "stance": "compare", "quote": "Node at least picked up --run, TS stripping support, .env loading, watch mode, and sqlite", "excerpt": "I mean I used to do a lot of things I'm glad I don't have to anymore. I'm not a big fan of doing repetitive work just because I understand how to. Node at least picked up --run, TS stripping support, .env loading, watch mode, and sqlite (plus some other things I'm probably forgetting) since Deno started so at least theres that.", "context": "", "use_case": "JS runtime", "switched_from": "", "story": "Cloudflare acquires Deno"}]}, {"label": "Business logic focus", "summary": "Lets developers focus on business logic rather than memory management.", "quotes": [{"id": 782233905, "item_id": 48889619, "url": "https://news.ycombinator.com/item?id=48889619", "by": "nilirl", "date": "2026-07-13", "stance": "recommend", "quote": "I want to focus on business logic, so I use Node.js instead of Rust", "excerpt": "My point was your needs and problems are not everyone's needs and problems. I don't want to think of memory management in most projects, I want to focus on business logic, so I use Node.js instead of Rust, even if the latter gives me more control. Similarly, I don't want to think of DOM management in most projects, I want to focus on data dependencies, so I use React instead of Web Components, even if the latter give", "context": "", "use_case": "backend development", "switched_from": "", "story": "Why Vanilla JavaScript"}]}], "caveats": [{"label": "Ecosystem churn", "summary": "The ecosystem is described as fragmented, fragile and exhausting to keep up with.", "quotes": [{"id": 790007617, "item_id": 49375476, "url": "https://news.ycombinator.com/item?id=49375476", "by": "sunsetSamurai", "date": "2026-08-20", "stance": "warn", "quote": "getting tired of the nodejs ecosystem fragmentation and how fragile things feel", "excerpt": "I recently pivoted to Rust for the backend development, after getting tired of the nodejs ecosystem fragmentation and how fragile things feel. Bun seems very interesting since it allows you to do so many things without pulling in 3rd party libraries and bundlers? Is anybody using it instead of nodejs? how's the experience so far? I might have to give it a try. Yes, I know there's probably better options than Rust for", "context": "", "use_case": "backend development", "switched_from": "", "story": "Bun 1.4"}, {"id": 784576241, "item_id": 49036015, "url": "https://news.ycombinator.com/item?id=49036015", "by": "RattlesnakeJake", "date": "2026-07-24", "stance": "warn", "quote": "I'm not sold on NodeJS", "excerpt": "Or at least the culture around JavaScript . I love writing JavaScript. I like React well enough. I'm not sold on NodeJS, though I'll accept that its struggles are no different than any other package manager. I just wish the whole thing would stand still for a minute. It's seriously exhausting to keep up with all of the deprecations, rewrites, new \"best\" frameworks, etc.", "context": "", "use_case": "", "switched_from": "", "story": "Why is programming so captivating, yet so agonizing?"}]}, {"label": "Reputation", "summary": "Some commenters dislike Node and npm, and one says Node has a bad reputation.", "quotes": [{"id": 793609377, "item_id": 49600586, "url": "https://news.ycombinator.com/item?id=49600586", "by": "excsn", "date": "2026-09-07", "stance": "warn", "quote": "Node.js has a bad reputation, full stop.", "excerpt": "I ditched Node.js for the most part, I don't interact with it outside of outside work. SnapFire FSR is a representation of what I wanted for a long time, but nobody has done it the way I would like. It's a bit more than I envisioned, if I had to be honest, hah. Node.js has a bad reputation, full stop. Heck, some companies don't want Node.js running as a web service without a sidecar process to talk to other internal ", "context": "", "use_case": "web service runtime", "switched_from": "", "story": "SnapFire FSR: Write TypeScript for Web. Run Rust. Ditch Node.js"}, {"id": 747209634, "item_id": 46700602, "url": "https://news.ycombinator.com/item?id=46700602", "by": "burntoutgray", "date": "2026-01-20", "stance": "warn", "quote": "Always disliked Node.js and especially npm.", "excerpt": "I use Bun or Deno for my projects. Always disliked Node.js and especially npm. Ryan Dahl created Deno to address his regrets regarding Node.js shortcomings, limitations.", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Was Node.js a Mistake?"}, {"id": 766308353, "item_id": 47894272, "url": "https://news.ycombinator.com/item?id=47894272", "by": "shevy-java", "date": "2026-04-24", "stance": "warn", "quote": "node is pretty awful", "excerpt": "Well ... 17 years ago. \"Over roughly the same period my day job has changed and transitioned me from writing thick clients in Swing to big freaking enterprise web apps.\" I mean, the web kind of won. We just don't have a simple and useful way to design for the web AND the desktop at the same time. I also use the www of course, with a gazillion of useful CSS and JavaScript where I have to. I have not entirely given up ", "context": "", "use_case": "filesystem access from web apps", "switched_from": "", "story": "Why I'm Done Making Desktop Applications"}]}, {"label": "Cold starts", "summary": "One benchmark found Node 22 had about 50ms slower Lambda cold starts than Node 20.", "quotes": [{"id": 737978768, "item_id": 46123673, "url": "https://news.ycombinator.com/item?id=46123673", "by": "perpil", "date": "2025-12-02", "stance": "warn", "quote": "I found that Node 22 had ~50ms slower coldstarts than Node 20.", "excerpt": "This is very thorough, but I have a few things to add if you are using Node 22. I benchmarked Node 22 earlier this year using something similar to the light benchmark. https://speedrun.nobackspacecrew.com/blog/2025/07/21/the-fastest-node-22-lambda-coldstart-configuration.html I found that Node 22 had ~50ms slower coldstarts than Node 20. This is because the AWS Javascript V3 SDK loads the http request library which b", "context": "", "use_case": "AWS Lambda runtime", "switched_from": "", "story": "Comparing AWS Lambda ARM64 vs. x86_64 Performance Across Runtimes in Late 2025"}]}, {"label": "Security", "summary": "One commenter's team picks Deno over Node for its security benefits.", "quotes": [{"id": 800501233, "item_id": 50031327, "url": "https://news.ycombinator.com/item?id=50031327", "by": "mark_and_sweep", "date": "2026-10-10", "stance": "compare", "quote": "I've been using Node since 2013", "excerpt": "Thanks for your response, ry. It's hard to put into words how much I appreciate your work, both on Node and Deno. Honestly, you saved me from a career as a Java dev. :) I've been using Node since 2013 and Deno since 2018 (when it was still written in Go)... I used both first for hobby projects and scripting and later, when they matured, also at work. I disagree that there's little differentiation between Node and Den", "context": "", "use_case": "hobby projects and work", "switched_from": "", "story": "Cloudflare acquires Deno"}]}, {"label": "Memory footprint", "summary": "A lighter runtime's author says it uses less memory than Node and ships a smaller binary.", "quotes": [{"id": 787691890, "item_id": 49230743, "url": "https://news.ycombinator.com/item?id=49230743", "by": "Borkdude", "date": "2026-08-09", "stance": "compare", "quote": "It uses less memory in a Hono app compared to Node.js and Bun.", "excerpt": "Author here! I'd use this when you need a smaller binary than Node.js, Bun or Deno. Performance of QuickJS isn't as good (no JIT) but still perfectly fine for hosting personal projects on a VPS. With local measurements I got 30k requests/s in the server. It uses less memory in a Hono app compared to Node.js and Bun. So use this as a smaller (size and memory) lighter alternative to Node.js, I'd say with the trade-off ", "context": "author of Choq", "use_case": "", "switched_from": "", "story": "Show HN: Choq: Cherry (ClojureScript) on QuickJS"}]}], "who": [{"by": "denizcakiroglu", "context": "full-stack engineer specializing in production LLM systems", "url": "https://news.ycombinator.com/item?id=48502797", "date": "2026-06-12"}, {"by": "Kuyawa", "context": "60-year-old longtime developer", "url": "https://news.ycombinator.com/item?id=48326182", "date": "2026-05-29"}, {"by": "shepherd-eng", "context": "hiring at Shepherd", "url": "https://news.ycombinator.com/item?id=47975619", "date": "2026-05-01"}, {"by": "kigiri", "context": "works on a ~9y old nodejs codebase", "url": "https://news.ycombinator.com/item?id=47481421", "date": "2026-03-22"}], "tags": ["for backend services", "for TypeScript projects", "for production", "for scripting"], "use_cases": ["javascript runtime", "backend development", "backend runtime", "game server runtime", "running typescript directly", "certificate verification"], "compared": [{"slug": "bun", "name": "Bun", "co": 21, "switched_from": 0, "switched_to": 3}, {"slug": "deno", "name": "Deno", "co": 15, "switched_from": 1, "switched_to": 1}, {"slug": "react", "name": "React", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "next-js", "name": "Next.js", "co": 4, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=50019911", "title": "Cloudflare acquires Deno", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48885705", "title": "Why Vanilla JavaScript", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48011184", "title": "I am worried about Bun", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50225852", "title": "item 50225852", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=50165953", "title": "Tsrs: A Port of TypeScript to Rust", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=50160877", "title": "Go will reject certificate chains containing eight distrusted SPKIs", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"warn": 1}, "2026-01": {"warn": 1}, "2026-02": {}, "2026-03": {"neutral": 1}, "2026-04": {"neutral": 1, "warn": 1}, "2026-05": {"neutral": 2, "recommend": 2}, "2026-06": {"neutral": 3, "recommend": 1}, "2026-07": {"neutral": 2, "recommend": 4, "warn": 1}, "2026-08": {"neutral": 1, "compare": 1, "recommend": 1, "warn": 1}, "2026-09": {"warn": 1, "neutral": 1}, "2026-10": {"recommend": 4, "compare": 2, "neutral": 2}}, "quotes": [{"id": 803613650, "item_id": 50225853, "url": "https://news.ycombinator.com/item?id=50225853", "by": "grindthisgame", "date": "2026-10-24", "stance": "neutral", "quote": "started porting it to typescript to run on Node.js", "excerpt": "I used to play a mud back in 1993-1995 called Shadowdale MUD. It was all text over telnet but was insanely fun. Maybe my fav game of all time actually. Nobody kept playing it though. The ability for mortals to immort and add new zones was unique. I wanted a map, some graphics and less text scrolling and typing so I ported it. The original source was in C with plenty of bugs. It's called Dalemud and is on github. I go", "context": "", "use_case": "game server runtime", "switched_from": "", "story": null}, {"id": 802780849, "item_id": 50173803, "url": "https://news.ycombinator.com/item?id=50173803", "by": "austin-cheney", "date": "2026-10-20", "stance": "recommend", "quote": "Since both Bun and Node.js start up my large applications about twice as fast as the Typescript compiler executes I don't see any reason to bother.", "excerpt": "I use the Typescript compiler to report errors to the shell, but that's it. Both Bun and Node.js will execute Typescript directly without a compile step. If you are able to write your own front-end bundler then the front-end code also gets the same type stripping from either Bun or Node.js. Since both Bun and Node.js start up my large applications about twice as fast as the Typescript compiler executes I don't see an", "context": "", "use_case": "running TypeScript directly", "switched_from": "", "story": "Tsrs: A Port of TypeScript to Rust"}, {"id": 802648032, "item_id": 50165502, "url": "https://news.ycombinator.com/item?id=50165502", "by": "agwa", "date": "2026-10-20", "stance": "neutral", "quote": "Other certificate verifiers are doing the same:", "excerpt": "Other certificate verifiers are doing the same: Node: https://github.com/nodejs/node/pull/66871 rustls/webpki: https://github.com/rustls/webpki/pull/546 Electron: https://github.com/electron/electron/pull/55126 This is very serious and you should definitely upgrade. Hopefully OpenSSL will have a patch soon as well.", "context": "", "use_case": "certificate verification", "switched_from": "", "story": "Go will reject certificate chains containing eight distrusted SPKIs"}, {"id": 801894896, "item_id": 50118431, "url": "https://news.ycombinator.com/item?id=50118431", "by": "chrisweekly", "date": "2026-10-16", "stance": "recommend", "quote": "Node has a bright future.", "excerpt": "Node has a bright future. See e.g. Platformatic's \"Watt\" server^1 for an example of pushing it forward. 1. https://platformatic.dev/ and https://github.com/platformatic#-watt--the-nodejs-application-server", "context": "", "use_case": "", "switched_from": "", "story": "Thank You, Deno"}, {"id": 800501233, "item_id": 50031327, "url": "https://news.ycombinator.com/item?id=50031327", "by": "mark_and_sweep", "date": "2026-10-10", "stance": "compare", "quote": "I've been using Node since 2013", "excerpt": "Thanks for your response, ry. It's hard to put into words how much I appreciate your work, both on Node and Deno. Honestly, you saved me from a career as a Java dev. :) I've been using Node since 2013 and Deno since 2018 (when it was still written in Go)... I used both first for hobby projects and scripting and later, when they matured, also at work. I disagree that there's little differentiation between Node and Den", "context": "", "use_case": "hobby projects and work", "switched_from": "", "story": "Cloudflare acquires Deno"}, {"id": 800404451, "item_id": 50025278, "url": "https://news.ycombinator.com/item?id=50025278", "by": "syrusakbary", "date": "2026-10-09", "stance": "recommend", "quote": "I strongly believe Node.js semantics are likely the right ones for agents.", "excerpt": "I'm happy that the Deno team found a suitable home. Cloudflare is likely the best place for them to land. I believe they will do great things together. However, I'm a bit concerned that there are very few independent Node.js runtimes: Anthropic acquired Bun, and now Deno will not be developed further. Somehow I don't believe that Cloudflare doubling down on their own runtime -workerd, which will be likely migrated to", "context": "", "use_case": "agent runtime", "switched_from": "", "story": "Cloudflare acquires Deno"}, {"id": 800333809, "item_id": 50020863, "url": "https://news.ycombinator.com/item?id=50020863", "by": "zamadatix", "date": "2026-10-09", "stance": "compare", "quote": "Node at least picked up --run, TS stripping support, .env loading, watch mode, and sqlite", "excerpt": "I mean I used to do a lot of things I'm glad I don't have to anymore. I'm not a big fan of doing repetitive work just because I understand how to. Node at least picked up --run, TS stripping support, .env loading, watch mode, and sqlite (plus some other things I'm probably forgetting) since Deno started so at least theres that.", "context": "", "use_case": "JS runtime", "switched_from": "", "story": "Cloudflare acquires Deno"}, {"id": 799640769, "item_id": 49977548, "url": "https://news.ycombinator.com/item?id=49977548", "by": "MrJohz", "date": "2026-10-06", "stance": "recommend", "quote": "Node does support this!", "excerpt": "> - packages in workspaces can be used as dependencies without compilation (node's type stripping doesn't support this) Node does support this! Although it may depend on exactly you link the packages within a workspace \u2014 I use `pnpm` and it Just Works\u2122. Because NodeJS looks at the resolved symlink to decide whether a project is in `node_modules` or not, if the symlink resolves to a package in the workspace, then Node", "context": "", "use_case": "TypeScript type stripping in workspaces", "switched_from": "", "story": "Friendship ended with Deno, now Node is my best friend"}, {"id": 798479377, "item_id": 49904961, "url": "https://news.ycombinator.com/item?id=49904961", "by": "locknitpicker", "date": "2026-09-30", "stance": "neutral", "quote": "Why do you think the likes of nodejs dominates backend development?", "excerpt": "> I just tested gcloud (...) That's fine if all you want to do is put together a nonsensical apples to oranges comparison. If you actually want to take a look at what kind of cli app Cloudflare can put together, you'd look at the likes of wrangler. I mean, I'm sure it takes a couple of minutes to find a notable cli app written in your language of choice with is riddled with problems. Don't you agree? Would that serve", "context": "", "use_case": "backend development", "switched_from": "", "story": "Cf: The Agentic CLI for the Cloudflare API"}, {"id": 793609377, "item_id": 49600586, "url": "https://news.ycombinator.com/item?id=49600586", "by": "excsn", "date": "2026-09-07", "stance": "warn", "quote": "Node.js has a bad reputation, full stop.", "excerpt": "I ditched Node.js for the most part, I don't interact with it outside of outside work. SnapFire FSR is a representation of what I wanted for a long time, but nobody has done it the way I would like. It's a bit more than I envisioned, if I had to be honest, hah. Node.js has a bad reputation, full stop. Heck, some companies don't want Node.js running as a web service without a sidecar process to talk to other internal ", "context": "", "use_case": "web service runtime", "switched_from": "", "story": "SnapFire FSR: Write TypeScript for Web. Run Rust. Ditch Node.js"}, {"id": 790007617, "item_id": 49375476, "url": "https://news.ycombinator.com/item?id=49375476", "by": "sunsetSamurai", "date": "2026-08-20", "stance": "warn", "quote": "getting tired of the nodejs ecosystem fragmentation and how fragile things feel", "excerpt": "I recently pivoted to Rust for the backend development, after getting tired of the nodejs ecosystem fragmentation and how fragile things feel. Bun seems very interesting since it allows you to do so many things without pulling in 3rd party libraries and bundlers? Is anybody using it instead of nodejs? how's the experience so far? I might have to give it a try. Yes, I know there's probably better options than Rust for", "context": "", "use_case": "backend development", "switched_from": "", "story": "Bun 1.4"}, {"id": 787941760, "item_id": 49246360, "url": "https://news.ycombinator.com/item?id=49246360", "by": "giancarlostoro", "date": "2026-08-10", "stance": "recommend", "quote": "I'm glad something like Go and Node came along", "excerpt": "Anyway, my memory is pretty bad, the early 2010s are a blurb and sometimes I mix up 2009 with the early 2010s. I love JavaScript and hate it, because I know how quirky it is and can be, I'm glad something like Go and Node came along, we were all stuck with Java or C# (which arguably became a lot better in recent years). Now we've got many more options.", "context": "", "use_case": "", "switched_from": "", "story": "Because It's Not Fun Enough: why languages fail"}, {"id": 787691890, "item_id": 49230743, "url": "https://news.ycombinator.com/item?id=49230743", "by": "Borkdude", "date": "2026-08-09", "stance": "compare", "quote": "It uses less memory in a Hono app compared to Node.js and Bun.", "excerpt": "Author here! I'd use this when you need a smaller binary than Node.js, Bun or Deno. Performance of QuickJS isn't as good (no JIT) but still perfectly fine for hosting personal projects on a VPS. With local measurements I got 30k requests/s in the server. It uses less memory in a Hono app compared to Node.js and Bun. So use this as a smaller (size and memory) lighter alternative to Node.js, I'd say with the trade-off ", "context": "author of Choq", "use_case": "", "switched_from": "", "story": "Show HN: Choq: Cherry (ClojureScript) on QuickJS"}, {"id": 786133840, "item_id": 49133365, "url": "https://news.ycombinator.com/item?id=49133365", "by": "fennecbutt", "date": "2026-08-01", "stance": "neutral", "quote": "I've used node.js for more than a decade now", "excerpt": "\"our best java script people\" I've used node.js for more than a decade now, I was there for the start of \"now everyone is truly full stack\"...but yes the majority of developers I've worked with have had no idea about how js etc works on the inside, no knowledge of event loop or what causes the few memory leaks possible in js. But then again I only know because I love that shit and started out in c/embedded, c# etc. A", "context": "", "use_case": "full stack development", "switched_from": "", "story": "Google fixed more Chrome bugs in June than over the past two years, thanks to AI"}, {"id": 784576241, "item_id": 49036015, "url": "https://news.ycombinator.com/item?id=49036015", "by": "RattlesnakeJake", "date": "2026-07-24", "stance": "warn", "quote": "I'm not sold on NodeJS", "excerpt": "Or at least the culture around JavaScript . I love writing JavaScript. I like React well enough. I'm not sold on NodeJS, though I'll accept that its struggles are no different than any other package manager. I just wish the whole thing would stand still for a minute. It's seriously exhausting to keep up with all of the deprecations, rewrites, new \"best\" frameworks, etc.", "context": "", "use_case": "", "switched_from": "", "story": "Why is programming so captivating, yet so agonizing?"}, {"id": 784288048, "item_id": 49018003, "url": "https://news.ycombinator.com/item?id=49018003", "by": "holysantamaria", "date": "2026-07-23", "stance": "recommend", "quote": "Node is already powerful enough and well maintained.", "excerpt": "What makes Bun Bun is all the things that got removed from this project. Node is already powerful enough and well maintained. Why would anyone use this?", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "Cruller: Bun's Zig Runtime, Continued on Zig 0.16"}, {"id": 783503441, "item_id": 48968965, "url": "https://news.ycombinator.com/item?id=48968965", "by": "preommr", "date": "2026-07-19", "stance": "neutral", "quote": "I am still going to use bun as a nice dev tool, and use node for production.", "excerpt": "I love bun - although disliked how Jarred did the conversion. Project-wise, nothing has changed. Bun was always great because of the fantastic dx - it was just really easy to use , with stuff like out of the box typescript (unreal that it took so long for node, and it's behind a super long flag, wtf...). And it didnt have the weirdness of deno, it maintained backwards compatability with node api, and it just worked. ", "context": "", "use_case": "production runtime", "switched_from": "", "story": "Claude Code uses Bun written in Rust now"}, {"id": 783135120, "item_id": 48945945, "url": "https://news.ycombinator.com/item?id=48945945", "by": "austin-cheney", "date": "2026-07-17", "stance": "neutral", "quote": "If Node is your web server then node does have a way to serve the code to the browser", "excerpt": "If Node is your web server then node does have a way to serve the code to the browser... or you could just have node write the stripped code to a file for your other web server. It sounds like you are not even trying to think through this. I recommend putting fingers on keyboard and just trying to find your way through the solution instead of complaining about how impossible life is.", "context": "", "use_case": "web server serving client code", "switched_from": "", "story": "Why Vanilla JavaScript"}, {"id": 782540449, "item_id": 48908778, "url": "https://news.ycombinator.com/item?id=48908778", "by": "umvi", "date": "2026-07-14", "stance": "recommend", "quote": "In node it should be even easier than Go because Node added native type stripping starting with v22[2]", "excerpt": "You don't need a bundler, just a type stripper. And yeah you need a middleware to perform the type stripping, the server won't do it automatically, but it's like 10 lines of code. The basic flow would be something like: 1. Browser requests /js/foo.js 2. Server middleware checks if /js/foo.ts exists 3. If yes, server middleware strips types from the file before returning it In golang I use the go package github.com/ev", "context": "", "use_case": "native TypeScript type stripping", "switched_from": "", "story": "Why Vanilla JavaScript"}, {"id": 782233905, "item_id": 48889619, "url": "https://news.ycombinator.com/item?id=48889619", "by": "nilirl", "date": "2026-07-13", "stance": "recommend", "quote": "I want to focus on business logic, so I use Node.js instead of Rust", "excerpt": "My point was your needs and problems are not everyone's needs and problems. I don't want to think of memory management in most projects, I want to focus on business logic, so I use Node.js instead of Rust, even if the latter gives me more control. Similarly, I don't want to think of DOM management in most projects, I want to focus on data dependencies, so I use React instead of Web Components, even if the latter give", "context": "", "use_case": "backend development", "switched_from": "", "story": "Why Vanilla JavaScript"}, {"id": 781418048, "item_id": 48838628, "url": "https://news.ycombinator.com/item?id=48838628", "by": "austin-cheney", "date": "2026-07-08", "stance": "recommend", "quote": "Even for front end code destined for the browser I rely on Node's type stripping.", "excerpt": "Fascinating, but since Node now natively strips the TypeScript type annotations I rarely run the TSC. I really only run it now when I make a major regressive change and need static output from the compiler to see things I have failed to update. Even for front end code destined for the browser I rely on Node's type stripping.", "context": "", "use_case": "running TypeScript via type stripping", "switched_from": "", "story": "TypeScript 7"}, {"id": 780257552, "item_id": 48766097, "url": "https://news.ycombinator.com/item?id=48766097", "by": "moogly", "date": "2026-07-02", "stance": "neutral", "quote": "I use Node.js 24.17 here.", "excerpt": "Sure. No need for --(experimental)-strip-types since I-forget-which-version, but I use Node.js 24.17 here. // ---- dev-ts-resolve.js export async function resolve(specifier, context, nextResolve) { try { return await nextResolve(specifier, context); } catch (err) { const isRelative = specifier.startsWith('./') || specifier.startsWith('../') || specifier.startsWith('/') || specifier.startsWith('file:'); if (err?.code ", "context": "", "use_case": "running TypeScript with custom loader", "switched_from": "", "story": "Vite+ Beta"}, {"id": 779291776, "item_id": 48705736, "url": "https://news.ycombinator.com/item?id=48705736", "by": "_ache_", "date": "2026-06-28", "stance": "neutral", "quote": "Them move to a NodeJS script.", "excerpt": "I used to do that. Them move to a NodeJS script. Because bash is maybe worst than C for this task.", "context": "", "use_case": "blog generation script", "switched_from": "", "story": "Bashblog \u2013 a single bash script to create blogs"}, {"id": 778817585, "item_id": 48676099, "url": "https://news.ycombinator.com/item?id=48676099", "by": "Tiberium", "date": "2026-06-25", "stance": "recommend", "quote": "I think I'll probably just go back to normal Node because it's stable and won't break things like this between minor releases", "excerpt": "To be honest, Deno was cool in the past (I even somewhat promoted it on HN in some comments), but nowadays I'm disappointed in their lackluster approach to stability and testing (specifically in Node compat). I recently hit multiple Node compatibility regressions in Deno that were hard to debug, and it doesn't help that they use Claude for everything now, from actual fixes to writing blog posts (even this one). For e", "context": "", "use_case": "JavaScript runtime", "switched_from": "Deno", "story": "Deno 2.9"}, {"id": 778266432, "item_id": 48641652, "url": "https://news.ycombinator.com/item?id=48641652", "by": "esperent", "date": "2026-06-23", "stance": "neutral", "quote": "I'm still using node/npm and it's... fine.", "excerpt": "I'm still using node/npm and it's... fine. Every so often I read these posts and think I should change but node/npm is already a low friction part of my workflow. However, what I have seen is that a lot of other libraries I use have switched to Bun. I haven't seen any that switched to Deno, and so I've been under the impression that Bun is becoming a strong node replacement candidate while Deno is not, or at least th", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "Deno Desktop"}, {"id": 776044752, "item_id": 48502797, "url": "https://news.ycombinator.com/item?id=48502797", "by": "denizcakiroglu", "date": "2026-06-12", "stance": "neutral", "quote": "", "excerpt": "Location: Istanbul, T\u00fcrkiye (relocating to Guildford, UK in Sept 2026) Remote: Yes \u2014 full EU overlap; US-East evenings (UTC+3, moving to UTC+0) Willing to relocate: No Technologies: TypeScript, Node.js, NestJS, Fastify, Next.js, React, React Native/Expo, PostgreSQL/Prisma, Redis/BullMQ, Claude API, RAG, tool-calling/MCP, pgvector, Playwright R\u00e9sum\u00e9/CV: https://github.com/denizcakiroglu322 Email: denizcakiroglu322@gma", "context": "full-stack engineer specializing in production LLM systems", "use_case": "backend development", "switched_from": "", "story": "Ask HN: Who wants to be hired? (June 2026)"}, {"id": 773218913, "item_id": 48326182, "url": "https://news.ycombinator.com/item?id=48326182", "by": "Kuyawa", "date": "2026-05-29", "stance": "recommend", "quote": "then back to basics with Node and PostgreSQL", "excerpt": "60/yo and still loving it. I get burned out every couple of years but new technology always refreshes my admiration for the field I chose. It never ceases to amaze me the capacity to reinvent itself, from the early days of dbase and clipper, it came the dial up internet, the craze of FrontPage and webmasters, the move to client/server, Python, Ruby, Go, then mobile apps, Swift, Java, Kotlin, then back to basics with ", "context": "60-year-old longtime developer", "use_case": "", "switched_from": "", "story": "I Am Retiring from Tech to Live Offline"}, {"id": 768264096, "item_id": 48016506, "url": "https://news.ycombinator.com/item?id=48016506", "by": "traderj0e", "date": "2026-05-04", "stance": "neutral", "quote": "The only reason I don't use Bun is I never ran into a situation where Node didn't cut it.", "excerpt": "So who controls NodeJS? https://openjsf.org/governance has Microsoft as the chair. And Microsoft owns npm. It's kinda hard to avoid a corp controlling these tools. The author seems more focused on the thing where Anthropic fights OpenClaw usage unless you have the right billing set up for that. Frankly I just don't care about those complaints, all the LLM services want you to set up a non-subsidized billing method to", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}, {"id": 768190657, "item_id": 48011916, "url": "https://news.ycombinator.com/item?id=48011916", "by": "cute_boi", "date": "2026-05-04", "stance": "recommend", "quote": "Node.js is also more stable, and it has started supporting TypeScript out of the box.", "excerpt": "I used to be a fan of Bun, but the way it keeps adding bloat makes me seriously doubt its future. Also, it seems like they are doing a lot of vibe coding without taking enough time, which raises other questions. Node.js is also more stable, and it has started supporting TypeScript out of the box. I don\u2019t think Bun will have many advantages after Node 26.", "context": "", "use_case": "JavaScript runtime", "switched_from": "", "story": "I am worried about Bun"}, {"id": 767609906, "item_id": 47975619, "url": "https://news.ycombinator.com/item?id=47975619", "by": "shepherd-eng", "date": "2026-05-01", "stance": "neutral", "quote": "Node.js, Postgres & Redis", "excerpt": "Shepherd | ONSITE | San Francisco, CA At Shepherd, we're pursuing the most ambitious technical vision in commercial insurance: fully autonomous underwriting. Shepherd is an AI-native commercial insurance platform transforming how high-hazard industries get covered. The infrastructure behind the AI boom (data centers, semiconductor fabs, renewable energy assets) has to be built and insured, but traditional carriers we", "context": "hiring at Shepherd", "use_case": "backend runtime", "switched_from": "", "story": "Ask HN: Who is hiring? (May 2026)"}, {"id": 766308353, "item_id": 47894272, "url": "https://news.ycombinator.com/item?id=47894272", "by": "shevy-java", "date": "2026-04-24", "stance": "warn", "quote": "node is pretty awful", "excerpt": "Well ... 17 years ago. \"Over roughly the same period my day job has changed and transitioned me from writing thick clients in Swing to big freaking enterprise web apps.\" I mean, the web kind of won. We just don't have a simple and useful way to design for the web AND the desktop at the same time. I also use the www of course, with a gazillion of useful CSS and JavaScript where I have to. I have not entirely given up ", "context": "", "use_case": "filesystem access from web apps", "switched_from": "", "story": "Why I'm Done Making Desktop Applications"}, {"id": 761629843, "item_id": 47601865, "url": "https://news.ycombinator.com/item?id=47601865", "by": "mwest1066", "date": "2026-04-01", "stance": "neutral", "quote": "Tech we use: Node.js / TypeScript backend, Postgres, AWS, React.", "excerpt": "PrairieLearn (Remote US) \u2014 Full-Stack Software Engineer \u2014 TypeScript / Postgres / React / AI PrairieLearn (https://www.prairielearn.com) is an open-source assessment platform used by universities across the US (Berkeley, Princeton, Michigan, Illinois, and others). We power mastery-based learning and large-scale exams. We\u2019re a small, profitable, early-stage company (bootstrapped, no VC) that is growing quickly. Our us", "context": "", "use_case": "backend runtime", "switched_from": "", "story": "Ask HN: Who is hiring? (April 2026)"}, {"id": 759702737, "item_id": 47481421, "url": "https://news.ycombinator.com/item?id=47481421", "by": "kigiri", "date": "2026-03-22", "stance": "neutral", "quote": "I work on a ~9y old nodejs codebase, have none of those issues", "excerpt": "I work on a ~9y old nodejs codebase, have none of those issues, we have 8 dependencies, this is fully resolved tree. One to generate zip files, one for markdown parsing, connecting to postgres, etc... most of them have no sub dependencies. We always reach out first to what nodejs lib have, try to glue ourself small specific piece of code when needed. The app is very stable and we have very few frustrations I used to ", "context": "works on a ~9y old nodejs codebase", "use_case": "backend codebase", "switched_from": "", "story": "The Three Pillars of JavaScript Bloat"}, {"id": 747209634, "item_id": 46700602, "url": "https://news.ycombinator.com/item?id=46700602", "by": "burntoutgray", "date": "2026-01-20", "stance": "warn", "quote": "Always disliked Node.js and especially npm.", "excerpt": "I use Bun or Deno for my projects. Always disliked Node.js and especially npm. Ryan Dahl created Deno to address his regrets regarding Node.js shortcomings, limitations.", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Was Node.js a Mistake?"}, {"id": 737978768, "item_id": 46123673, "url": "https://news.ycombinator.com/item?id=46123673", "by": "perpil", "date": "2025-12-02", "stance": "warn", "quote": "I found that Node 22 had ~50ms slower coldstarts than Node 20.", "excerpt": "This is very thorough, but I have a few things to add if you are using Node 22. I benchmarked Node 22 earlier this year using something similar to the light benchmark. https://speedrun.nobackspacecrew.com/blog/2025/07/21/the-fastest-node-22-lambda-coldstart-configuration.html I found that Node 22 had ~50ms slower coldstarts than Node 20. This is because the AWS Javascript V3 SDK loads the http request library which b", "context": "", "use_case": "AWS Lambda runtime", "switched_from": "", "story": "Comparing AWS Lambda ARM64 vs. x86_64 Performance Across Runtimes in Late 2025"}]}