Node.js 25 shipped in October 2025, and the headline features are worth knowing. But the more pressing story for most teams is version hygiene. Node.js 18 is already end-of-life. Node.js 20 goes end-of-life in April 2026. If your production app is running either of those, you are closer to a support cliff than you might realise.
What Is New in Node.js 25
Node.js 25 ships with V8 14.1, the latest version of the JavaScript engine, which brings performance improvements to common operations including faster object property access and lower memory overhead for certain data structures.
Cold-start performance has improved, which matters for serverless deployments where function initialisation time directly affects response latency. Node.js 25 also continues the project's ongoing work to align the runtime with browser Web APIs. Fetch, Web Streams, the Web Crypto API, and URLPattern are now more consistent with their browser counterparts, which reduces surprises when sharing code between client and server.
The Versions You Should Actually Be On
Here is a plain-language version of the Node.js release schedule:
Node.js 18 reached end-of-life in April 2025. If you are on 18, you are already running without security patches. This needs to be fixed now, not at the next sprint.
Node.js 20 LTS reaches end-of-life in April 2026. That is about a month away from the time of writing. If you are on 20, migration to 22 should be on the roadmap this quarter.
Node.js 22 is the current LTS release and will be supported until April 2027. This is where most production applications should be running today.
Node.js 26 LTS arrives in October 2026 and will become the recommended LTS from there. You do not need to rush to 25 or 26, but 22 is a solid, well-supported target for the next 12 months.
How to Upgrade Without Breaking Things
The Node.js upgrade path between minor versions is usually uneventful. The bigger risk is in your dependencies, not Node itself. Before upgrading, check your package.json for packages that specify a narrow engines field or that rely on native add-ons compiled for a specific Node version.
Run your test suite on the new version in a staging environment before updating production. For most applications moving from 20 to 22, the test suite will pass without any changes. The main exceptions are packages that use deprecated Node internals or native bindings that need recompiling.
Use a version manager like nvm or fnm to switch cleanly between versions during testing. Set the target version in your .nvmrc or .node-version file so the whole team and your CI pipeline stay in sync.
Why This Matters Beyond Security Patches
Running an EOL version is not just a security risk. It is a maintenance burden. When a bug appears in a dependency and the fix requires a newer Node API, you are stuck. When a new team member joins and sets up their environment with a current version, subtle differences can cause local environments to diverge from production. Version hygiene keeps the stack consistent and reduces the category of bugs that are purely environmental.
If your team is carrying technical debt across the stack and you are not sure where to start cleaning it up, Cystall can help you assess and ship a plan. We build and maintain Node-based applications for startups and know where the common problems live.