Node.js 26 becomes LTS on 28 October, with Temporal built in
Node.js 26 becomes LTS on 28 October with Temporal on by default. Apply the 21 October security releases, then plan your move to 26.
On this page
Node.js 26 is scheduled to become a Long Term Support (LTS) release on 28 October 2026, the kind of release the project says production applications should use. It is the first LTS line with Temporal, JavaScript's new date and time API, switched on by default, and the last on the old release model: from Node.js 27, every release line becomes LTS. If your websites, APIs or build pipelines run on Node.js, 26 is the version to plan your next upgrade around.
The dates that matter
From the Node.js release schedule, whose dates can still change:
- Node.js 26 has been the Current release since 5 May 2026. It moves to Active LTS on 28 October 2026 and to Maintenance on 20 October 2027, and reaches end of life on 30 April 2029.
- Node.js 24 is scheduled to be in Maintenance from 20 October 2026, the phase for critical bug fixes and security updates, until end of life on 30 April 2028.
- Node.js 22 is in Maintenance until end of life on 30 April 2027.
- Node.js 20 reached end of life on 30 April 2026 and gets no more fixes.
On 21 October 2026 the project released 26.12.1, 24.22.1 and 22.23.4, fixing ten vulnerabilities, four rated high. The advisory adds that end-of-life versions are always affected.
Temporal, on by default
The 26.0.0 release notes put it plainly: "The Temporal API is now enabled by default in Node.js 26." Temporal has reached Stage 4, the final stage of TC39's standards process, and MDN describes it as designed as a full replacement for Date.
Temporal gives each kind of time its own type. Temporal.Instant is an exact moment. Temporal.PlainDate is a calendar date with no time or time zone, which is what a booking date or an event day usually is. Temporal.ZonedDateTime is a date and time in a named time zone, and it knows that a day with a daylight saving change may not last 24 hours. Methods such as add() return a new object rather than changing the one you have, and months count from 1, not 0.
For example, Temporal.PlainDate.from('2026-10-28').add({ days: 30 }) gives 2026-11-27, with no time zone to shift the day, and Temporal.Now.zonedDateTimeISO('Europe/London') gives the time in London under London's daylight saving rules.
If a codebase reads a Terminal site's CMS through the Content API, a Date field arrives as YYYY-MM-DD, which Temporal.PlainDate.from() reads, and a Date & time field as a UTC ISO string, which Temporal.Instant.from() reads.
In the browser, not everywhere yet
Temporal shipped in Firefox 139 in May 2025 and in Chrome 144 in January 2026, and Edge 144 has it too. Safari has not shipped it in a stable release: MDN's compatibility data lists it only in Safari Technology Preview, and MDN marks Temporal as limited availability, not Baseline.
Server code on Node.js 26 can use Temporal directly. Code that runs in visitors' browsers should check for it first, with typeof Temporal !== 'undefined', and fall back, or load one of the polyfills listed in the Temporal proposal's README.
What else changes from 24 or 22
Among the changes in the 26.0.0 release notes:
- V8 14.6.202.33 and Undici 8.0.2, Node.js's HTTP client.
NODE_MODULE_VERSIONis now 147, so native addons that do not use Node-API must be rebuilt.- Removed:
http.Server.prototype.writeHeader()(usewriteHead()), the legacy_stream_*modules, and the--experimental-transform-typesflag. - Now warn at runtime:
module.register(), and deprecations DEP0201 (streams), DEP0203 and DEP0204 (crypto). localStoragereturnsundefinedwhen no storage file is set.
A new release model after 26
Under the old schedule, which ends with 26, only even-numbered lines became LTS. From Node.js 27, a new line is branched each October and spends six months in Alpha, which is meant for library authors and CI pipelines, not production. It becomes Current in April and LTS in October, and every line gets 30 months of LTS: 36 months from its first Current release to end of life.
The 27.x Alpha starts on 28 October 2026, the day 26 becomes LTS. It is due to become LTS on 20 October 2027 and to reach end of life on 30 April 2030. The project says the new schedule is not final. For teams that only deploy LTS, the change is a steady rhythm: one new LTS line every October.
What to do now
- Update to the 21 October security releases: 26.12.1, 24.22.1 or 22.23.4.
- Move anything still on Node.js 20 or older to 24 now, or to 26 once it is LTS.
- Test 26 on a branch or staging deploy: rebuild any native addons, search your code and dependencies for
writeHeader(,_stream_andmodule.register(, and run your tests with deprecation warnings visible. - Pin the Node.js version your host runs, through
enginesinpackage.json, an.nvmrcfile or the host's runtime setting, so upgrades happen when you choose. - Write new server-side date code with Temporal, and feature-detect or polyfill it in the browser until Safari ships it.
Sources
- Node.js release schedule, Node.js Release Working Group
- Node.js 26.0.0 (Current), 5 May 2026
- Node.js releases
- Evolving the Node.js release schedule
- Security releases of 21 October 2026
- Temporal on MDN, with its browser compatibility data
- The Temporal proposal, TC39