Products · Product
Node.js
Raised as a usability problem by 82 people on Hacker News over 16 years (2010–2025), in 81 threads.
No issue was raised by at least 3 people in 3 threads this year.
Every issue, all time, most people first
Async APIs force nested callbacks, hard to followUnreviewed
20102026- Deeply nested callbacks make loops and exceptions confusing and the code unreadable2017-08-31
- Callback-style async code becomes hard to write and follow2016-09-06
- Callback style of async code is hard to grasp, with inverted control flow2016-05-02
Mixing ESM and CommonJS makes existing libraries hard to useUnreviewed
20102026- Configuring projects is extremely painful because of the ESM and CommonJS module split2024-04-12
- ESM and CJS interop is confusing, requiring .cjs/.mjs extensions and breaking across modules2023-06-30
- Mixing ESM and CommonJS is painful, so existing libraries are hard to convert and use as dependencies2023-06-30
Syntax errors and async exceptions fail silently with no stack traceUnreviewed
20102026- TypeScript/Node stack traces are useless for diagnosing problems compared to JVM2022-06-23
- Syntax errors and async exceptions fail silently or give no useful stack trace2021-03-24
- Debugging unhandled promise rejections takes ages due to huge, unhelpful stack traces2020-02-18
Unusable without pulling in hundreds of dependenciesUnreviewed
20102026- A simple dependency error cascades into a long chain of prerequisite installs2021-12-25
- Simple hello-world UI setup pulls in a huge tangle of dependencies2021-11-07
- Unusable without pulling in hundreds of dependencies2020-06-08
Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.
The newest 50 complaints
- Must wait for dependencies to support new Node version, then upgrade yearly2025-09-22
- Rough edges everywhere; TypeScript hack makes static analysis hard, monkeypatching undermines tooling2025-06-26
- Getting Node.js builds and deployments to work takes far more effort than developing .NET apps2025-06-25
- Login provider determines which browser the code will run in2025-05-01
- Terminal prompt takes ages to appear and accept keyboard input2025-05-01
- Cursor has delete and placement problems, so the editable code can't be edited properly2025-04-28
- ESM support requires an experimental flag, adding friction for users2025-03-24
- Using it correctly requires deep crypto knowledge and has non-obvious footguns2025-02-01
- Node upgrades break code and package upgrades become a mess2025-01-30
- Native dependency builds break on old Node projects needing a precise toolchain setup2024-11-18
- Configuring projects is extremely painful because of the ESM and CommonJS module split2024-04-12
- Can't tell which functions can throw or which errors they throw2024-02-08
- Must hunt for a random flag and figure out the right Node version for each project2024-02-06
- Getting TypeScript, Node and ESM configured to just run code is a frustrating guessing game2023-11-21
- ESM and CJS interop is confusing, requiring .cjs/.mjs extensions and breaking across modules2023-06-30
- Mixing ESM and CommonJS is painful, so existing libraries are hard to convert and use as dependencies2023-06-30
- Working with ES modules at the command line is inconvenient when testing and refactoring code2023-05-31
- Progress bars and REPL colors emit ANSI codes that show as junk in Emacs shell-mode2023-03-04
- UI lags as it grows beyond toy examples and simple sites2022-11-27
- Three file extensions and package.json metadata interact in a complex, hard-to-predict way2022-11-03
- ESM support is hard to work with, and import maps are poorly documented2022-08-15
- TypeScript/Node stack traces are useless for diagnosing problems compared to JVM2022-06-23
- Node errors when mixing require and import, so the two module systems can't coexist2022-05-27
- ESM changes cause hours of obscure debugging, with the migration handled badly2022-04-25
- Imports that work elsewhere break in Azure Functions, forcing require or .mjs workarounds2022-02-01
- A simple dependency error cascades into a long chain of prerequisite installs2021-12-25
- Browser client builds need more configuration of Node and packers than wanted2021-11-17
- Simple hello-world UI setup pulls in a huge tangle of dependencies2021-11-07
- Requires separate dependency files, so single-file scripts are not possible2021-06-18
- Forces developers to manage the event loop, leading to pervasive awaits and callback or promise contortions2021-05-07
- Ctrl+D and Ctrl+C are easily confused, closing the session and losing state2021-05-03
- Node sometimes silently exits on syntax errors without showing the line number2021-03-24
- Syntax errors and async exceptions fail silently or give no useful stack trace2021-03-24
- Debugger attach changed, forcing hours of work and launch profile setup2020-10-21
- Constant workarounds needed for framework and language inconsistencies, making development maddening2020-07-19
- Unusable without pulling in hundreds of dependencies2020-06-08
- Debugging unhandled promise rejections takes ages due to huge, unhelpful stack traces2020-02-18
- Builds randomly break when switching between development environments2020-01-29
- Easy to deadlock by accident; users must work around a design trap2019-12-13
- Hard to decipher async and promise code mixing different anonymous function styles2019-11-28
- Must install basic packages and generate models, views and controllers by hand2019-09-09
- Needs several overlapping packages, unclear which to read docs or debug2019-04-08
- CLI lacks simple frame navigation like up/down and context evaluation2018-10-24
- Manual multi-step setup for debugging Node.js needs instructions and feels advanced2018-07-21
- Programming in Node.js creates an insane mental "brain load" for the developer2018-05-16
- Setup went wrong and took days to diagnose, so the commenter gave up2018-04-10
- Callback nesting was confusing for about half a year before it clicked2017-09-02
- Deeply nested callbacks make loops and exceptions confusing and the code unreadable2017-08-31
- Can't tell from a function's signature whether it returns a value, promise, or callback2017-06-30
- Beginner keeps hitting setup problems and an extra layer of knowledge when using Node2017-04-20