Node.js 26 has been available as a Current release since 5 May 2026, with LTS status scheduled for October. One line of the changelog outweighs all the others: the Temporal API is now enabled by default. After a decade of workarounds built on top of the Date object, the JavaScript ecosystem finally has date and time handling designed for production.
Temporal by default: the structural change
Handling time zones, durations or immutable dates with Date remains one of the best-documented sources of bugs in JavaScript: mutability, implicit arithmetic, dependence on the server locale. Temporal answers each of those flaws with immutable objects, explicit time zones and deterministic date arithmetic.
// Explicit time zone, immutable object, predictable arithmetic
const now = Temporal.Now.zonedDateTimeISO("Europe/Paris");
const tomorrow = now.add({ days: 1 });Enabling it by default removes the experimental flag that had been holding adoption back: code written with Temporal today will run without special configuration on tomorrow’s runtimes.
What else ships in this release
| Feature | Practical impact |
|---|---|
| V8 14.6 | Upsert methods on Map and WeakMap, Iterator.concat() |
req.signal | An AbortSignal exposed on http.IncomingMessage, to cancel an interrupted request cleanly |
crypto.randomUUIDv7() | Time-ordered identifiers, well suited to database primary keys |
All three are plumbing, but they have a concrete effect on dependencies: native UUID v7 and AbortSignal make several commonly installed npm packages redundant.
A runtime release is judged less by its announcements than by the number of dependencies it lets you delete.
Migration timeline
Node 26 carries Current status, not LTS. The distinction is not cosmetic: native modules, official Docker images and hosting providers generally track LTS releases. Established practice is to validate a Current release in continuous integration and on non-critical environments, then move production over when it reaches LTS.
What to take away
Node.js 26 is not a spectacular release, but Temporal enabled by default closes a project opened at TC39 back in 2017. For applications that deal with scheduling, recurrence or multiple time zones, this is the first complete native answer available.
On the servers I administer the rule has not changed: Current in continuous integration and on internal projects right away, production in the autumn. This is not caution for its own sake — native modules set the pace, and they follow LTS releases. — Simon Janvier
Further reading
The full release notes are published on the official Node.js blog.
Also on Mail Studio
- TypeScript 7.0: the compiler rewritten in Go
- MCP settles down: what the 28 July specification changes
