Node.js 26 LTS is scheduled to arrive on 28 October 2026. As I write this on 6 October, Node.js 26 is still the “Current” line (latest: v26.10.0), and Node.js 24 is the Active LTS. So the honest answer is: test now, upgrade production after the LTS switch.
I have shipped Node.js and React apps for clients for years, and I have learned one rule the hard way. Never move a live business app to a non-LTS line. The Node.js team itself says production apps should only use Active LTS or Maintenance LTS releases.
This October is special for one more reason. Node.js 26 is the last release under the old odd/even model. From Node.js 27, the project moves to one major release per year. Below, I explain the dates, what changed, what breaks, and exactly who should upgrade first.
1. Node.js 26 LTS release date and support timeline
Node.js 26 gets Active LTS on 28 October 2026 and stays supported until 30 April 2029. These dates come from the official Node.js Release Working Group schedule, which notes that dates can still change.
| Version | Codename | Status on 6 Oct 2026 | Active LTS starts | Maintenance starts | End of life |
|---|---|---|---|---|---|
| Node.js 26 | Lithium (planned) | Current | 28 Oct 2026 | 20 Oct 2027 | 30 Apr 2029 |
| Node.js 24 | Krypton | Active LTS | 28 Oct 2025 | 20 Oct 2026 | 30 Apr 2028 |
| Node.js 22 | Jod | Maintenance LTS | 29 Oct 2024 | 21 Oct 2025 | 30 Apr 2027 |
| Node.js 20 | Iron | End of life | 24 Oct 2023 | 22 Oct 2024 | 30 Apr 2026 |
Notice the small detail on Node.js 24. It moves into Maintenance on 20 October 2026, so it will get critical fixes and security patches, but no regular feature backports. The codename “Lithium” comes from the Release WG’s codename list, which marks future names as subject to change.
2. What’s new in Node.js 26
Node.js 26.0.0 shipped on 5 May 2026 with three headline changes: Temporal on by default, V8 14.6, and Undici 8. Here is what each one means for your day-to-day code, based on the official v26.0.0 release notes.
Temporal API is enabled by default
For years, JavaScript’s Date object caused timezone bugs in booking, billing and reporting apps. Node.js 26 now ships the Temporal API globally, with no flag needed. For Indian projects, handling IST next to a client’s foreign timezone finally feels clean.
// Node.js 26: no import, no flag
const nowInDelhi = Temporal.Now.zonedDateTimeISO('Asia/Kolkata');
const renewal = nowInDelhi.add({ months: 1 });
console.log(nowInDelhi.toString());
console.log(renewal.toPlainDate().toString()); If you mainly use date-fns or Day.js to patch Date problems, Temporal may let you drop that dependency in new code. I would not rewrite working code just for this, though.
V8 14.6 with new JavaScript methods
The V8 engine moves to 14.6 (the version in Chromium 146). It brings Map.prototype.getOrInsert(), getOrInsertComputed() (also on WeakMap) and Iterator.concat(). The first two remove a very common “check, then set” pattern.
// Group orders by city without the usual has()/set() dance
const byCity = new Map();
for (const order of orders) {
byCity.getOrInsertComputed(order.city, () => []).push(order);
} Undici 8 for fetch and HTTP
Undici, the HTTP client behind Node’s built-in fetch(), moves to version 8.0.2. If your app calls payment gateways, CRMs or AI APIs through fetch, run your integration tests on 26 before you switch. Major Undici versions can change edge-case behaviour.
Smaller changes worth knowing
- Crypto: the KeyObject APIs now support raw key formats, and Ed25519 accepts a context parameter.
- localStorage: it now returns
undefinedwhen you have not given a storage file, instead of a half-working object. - Native addons:
NODE_MODULE_VERSIONis now 147, so compiled packages must be rebuilt for Node.js 26.
3. Breaking changes and removals to check first
Most apps will run on Node.js 26 without code changes, but a few old APIs are now gone for good. Search your codebase, and your older dependencies, for these before you upgrade. The full context sits in the Node.js deprecations docs.
| What changed | Status in Node.js 26 | What to do |
|---|---|---|
response.writeHeader() | Removed | Use response.writeHead() |
_stream_readable, _stream_writable, _stream_duplex, _stream_transform, _stream_passthrough, _stream_wrap | Removed | Import from node:stream |
--experimental-transform-types flag | Removed | Compile TypeScript enums and namespaces with tsc or your bundler |
module.register() | Runtime-deprecated (prints a warning) | Plan a move to synchronous module hooks |
| Crypto DEP0182 | End of life | Pass an explicit authTagLength for short GCM tags |
| Native addons (bcrypt, sharp, sqlite3 etc.) | ABI changed to 147 | Run a clean npm ci and update packages |
If you build Node.js from source, note two more changes. The build now needs GCC 13.2 or newer, and Python 3.9 support is dropped. Most teams use official binaries or Docker images, so this rarely matters for app developers.
4. The bigger news: Node.js changes its release schedule
Starting with Node.js 27, the project ships one major release per year, and every release becomes LTS. The Node.js team announced this in March 2026 in its post Evolving the Node.js Release Schedule.
Under the new model, each version spends six months as Alpha (October to March), six months as Current (April to October), then 30 months as LTS. That gives 36 months of total support from the first Current release. The odd/even rule disappears.
| Milestone | Node.js 26 (old model) | Node.js 27 (new model) |
|---|---|---|
| Alpha begins | Not applicable | October 2026 |
| First release | 5 May 2026 | April 2027 |
| Enters LTS | 28 October 2026 | October 2027 |
| End of life | 30 April 2029 | April 2030 |
Why does this matter for your upgrade? Node.js 26 is the last line built the old way, and its LTS window overlaps comfortably with Node.js 27. Moving to 26 now puts you on a stable base while the new yearly rhythm settles in.
5. Should you upgrade now? My advice by situation
Your right move depends on the version you run today, not on the hype. Here is how I advise my own clients, from small business sites to custom web apps.
| If you run… | My recommendation | Deadline that matters |
|---|---|---|
| Node.js 20 or older | Upgrade now. You get no security patches. Move to 24 today, or to 26 after 28 Oct. | Already past (Node 20 EOL: 30 Apr 2026) |
| Node.js 22 | Start testing 26 this month and move after the LTS switch. Skipping 24 gives you two extra years. | 30 Apr 2027 |
| Node.js 24 | No rush. Test 26 in staging, then move in early to mid 2027 after a few LTS patch releases. | 30 Apr 2028 |
| New project launching after November 2026 | Start on Node.js 26 so you begin on the longest support window. | 30 Apr 2029 |
| Serverless or managed hosting | Wait until your platform officially lists a Node.js 26 runtime, then test. | Your platform’s own dates |
One honest caution. The first weeks of any LTS line often bring quick patch releases as more teams adopt it. For revenue-critical apps like ecommerce checkouts or payment gateway integrations, I prefer to wait for one or two LTS patch updates.
6. My 7-step checklist to upgrade to Node.js 26 safely
A careful upgrade takes a few hours for a small app and a few days for a large one. Follow these steps in order, and never test on your live server first.
- Check what you run today. Run
node -von your local machine, staging and production. Different versions across environments cause most “works on my machine” bugs. - Install Node.js 26 side by side. With nvm, run
nvm install 26andnvm use 26. Your current version stays installed, so you can switch back in seconds. - Search for removed APIs. Run this from your project root:
grep -rnE "writeHeader\(|_stream_(readable|writable|duplex|transform|passthrough|wrap)|module\.register\(|experimental-transform-types" --exclude-dir=node_modules . - Reinstall dependencies cleanly. Delete
node_modulesand runnpm ci. This rebuilds native addons for the new ABI and quickly shows which packages lack Node.js 26 support. - Run tests with deprecation tracing. Start your app or test runner with
node --trace-deprecation. It prints a stack trace for each deprecation warning, so you can see which file or package triggers it. - Update your configs. Change your Dockerfile (for example
FROM node:26-alpine), CI matrix,.nvmrcfile and theenginesfield inpackage.json. - Deploy to staging, then production. Watch error logs, memory and response times for at least a few days. Keep the previous image ready for a quick rollback.
7. My take after 13+ years of shipping web apps
Node.js 26 is a calm, sensible upgrade, not a risky one. Temporal and the new Map methods make daily code cleaner, while the removals mostly hit very old patterns. The real win is time: 26 gives you support until April 2029.
So here is my plan for client projects. I test every Node.js app on 26 during October, move new builds to 26 from November, and shift existing Node.js 22 apps first because their deadline comes soonest. Node.js 24 apps move calmly in 2027.
If your business runs a Node.js, React or Laravel app and you want this upgrade done without downtime, I can help. Have a look at my web app development service, or explore how I add AI integration and automation to existing apps. You can also get in touch for a free upgrade review, or read more guides on my blog.
FAQs
When does Node.js 26 become LTS?
Node.js 26 is scheduled to enter Active LTS on 28 October 2026, according to the Node.js Release Working Group. It moves to Maintenance on 20 October 2027 and reaches end of life on 30 April 2029.
What is the Node.js 26 LTS codename?
The Release Working Group’s codename list shows “Lithium” for Node.js 26. The list marks future codenames as subject to change, so confirm it once the LTS release goes out.
Is Node.js 26 stable enough for production today?
Not yet by the project’s own guidance. Until 28 October 2026 it is a Current release. Use it in development and staging now, and move production after the LTS promotion.
Should I upgrade from Node.js 24 to 26 right away?
No. Node.js 24 stays supported until 30 April 2028, so you can test calmly and move in 2027. Teams on Node.js 22 should move first, since that line ends on 30 April 2027.
Will Node.js 27 be an LTS release?
Yes. Under the new yearly schedule, every major release becomes LTS. Node.js 27.0.0 is planned for April 2027, with LTS in October 2027 and end of life in April 2030.