Node.js Ditches Odd/Even Model, Ships First 27.x Alpha
Node.js is retiring its twice-a-year release model. Every future major becomes LTS, starting with the 27.0.0 alpha that shipped October 29, 2026.
- Node.js is retiring its decade-old odd/even release model. Starting with Node.js 27, there will be one major release per year, and every major version becomes an LTS release.
- The policy was detailed in the official Node.js blog post "Evolving the Node.js Release Schedule," last updated March 10, 2026.
- The first build under the new model, 27.0.0-alpha.0.0.0, shipped October 29, 2026.
- Node.js 26 is the last release line under the old twice-a-year model.
- Per the published schedule: Alpha runs October 2026 to March 2027, 27.0.0 ships as Current around April 2027, it becomes LTS around October 2027, and end-of-life is projected for around April 2030.
- The 27.0.0 alpha bundles V8 15.6.75.13, up from V8 14.6 in Node.js 26, plus OpenSSL 4.1.0 and npm 12.1.0.
Node.js is overhauling how it ships major versions. The project has begun phasing out its long-standing odd/even release cadence in favor of a single annual major release, with every one of those releases automatically becoming a Long-Term Support (LTS) line. The change is now underway: the first alpha build under the new model, version 27.0.0-alpha.0.0.0, was published on October 29, 2026.
What is actually changing
For roughly a decade, Node.js has shipped two major versions a year — one in April, one in October — with only the even-numbered release (April) graduating to LTS six months later. Odd-numbered releases (like Node.js 25) were short-lived "Current" branches that most production users skipped entirely.
According to the official Node.js blog post "Evolving the Node.js Release Schedule", published by the Node.js Releasers team, that split is going away. Starting with Node.js 27, the project moves to:
- One major release per year. A single version ships as "Current" each spring instead of two versions a year.
- Every release becomes LTS. There is no more odd/even distinction — the version that used to only exist as a short-lived Current branch now gets the full LTS treatment.
- A new, explicit Alpha phase. Before a version becomes Current, it spends six months as an Alpha channel where semver-major (breaking) changes are allowed to land, specifically so library authors and CI pipelines can test against upcoming breaking changes early.
How the old odd/even model worked
To understand why this is a significant change, it helps to recap the system it replaces. Under the schedule Node.js has used for about a decade, a new major version shipped every six months — April and October. Only the April release (an even number, like 26) was ever promoted to LTS, six months after it debuted as "Current." The October release (an odd number, like 25 or 27 under the old numbering) existed purely as a short-lived Current branch: it never became LTS and was effectively obsolete once the next version shipped.
That meant two different experiences depending on which numbered line you landed on. Pick an even release and you got roughly three and a half years of support (six months as Current, 30 months as Active and Maintenance LTS). Pick an odd release and you got a handful of months before you had to move on — something many teams only discovered after already deploying on it. The Node.js Releasers' post singles this confusion out as one of the clearest signals that the system needed to change.
Why Node.js is dropping the odd/even model
The blog post frames this primarily as a maintainer-sustainability fix, not a feature push. The release schedule has existed largely unchanged since the io.js merger roughly ten years ago, and the project says it no longer matches how Node.js is actually used:
- Odd-numbered releases saw minimal real-world adoption — most teams wait for an LTS line, and plenty of organizations skip odd releases outright.
- The odd/even split is a recurring source of confusion for newcomers trying to figure out which version to install.
- Juggling security backports across four or five concurrently active release lines has become difficult for a volunteer-driven release team. Cutting the number of concurrent lines lets maintainers concentrate effort on the versions people actually run.
- Enterprises consistently asked for more predictability in the upgrade calendar.
The post is explicit that this schedule "is not final and may be amended," with further discussion planned at the Node.js Collaboration Summit; the authoritative, continuously updated record is the schedule.json file in the nodejs/Release repository on GitHub.
The new support windows
Each annual release now moves through three defined phases instead of the old Current-then-maybe-LTS path:
| Phase | Duration | What happens |
|---|---|---|
| Alpha | ~6 months (Oct–Mar) | Pre-release channel; semver-major changes allowed for early compatibility testing. Not for production. |
| Current | ~6 months (Apr–Oct) | Version officially ships and stabilizes; this is the "27.0.0" release itself. |
| LTS | ~30 months | Long-term support with security and critical bug fixes. Every release now reaches this phase. |
That adds up to roughly 36 months of total support, from a version's first day as Current to its end-of-life (EOL) date — a figure the project says is comparable to the overlap teams get today, even though fewer release lines are active at once.
Node.js 27's timeline under the new model
Node.js 27 is the first release built under this schedule. Based on the dates published in the announcement:
| Milestone | Date |
|---|---|
| Alpha phase begins | October 2026 |
| First alpha build (27.0.0-alpha.0.0.0) | October 29, 2026 |
| 27.0.0 ships as Current | ~April 2027 |
| 27.x enters Active LTS | ~October 2027 |
| 27.x end-of-life | ~April 2030 |
Node.js 26, which became active LTS on October 28, 2026 (see our earlier coverage of Node.js 26 becoming active LTS), is the last release line to run under the old twice-a-year model. Future major versions will follow the new annual cadence Node.js 27 is establishing.
Inside the first 27.0.0 alpha build
The alpha itself, tagged 27.0.0-alpha.0.0.0 and published by Node.js TSC member Rafael Gonzaga, is a pre-release snapshot meant for compatibility testing in CI pipelines, not production workloads. Per the official release notes on nodejs.org, it carries a substantial jump in its JavaScript engine and several semver-major changes:
- V8 engine: upgraded from V8 14.6 (used in Node.js 26) to V8 15.6.75.13 — one of the larger single-step V8 jumps in a recent Node.js release, reflecting the Alpha phase's explicit allowance for breaking engine updates.
- OpenSSL: updated to OpenSSL 4.1.0; the build now requires OpenSSL 3 or later and removes legacy OpenSSL code paths, the bundled FIPS provider build, and OpenSSL engine support.
- npm: bundled npm upgraded to 12.1.0.
- Serialization format change:
v8.serialize(),structuredClone(), andpostMessage()now use a new internal format that older Node.js versions cannot read back. - Memory defaults: when
--max-old-space-sizeisn't set, the default heap limit is now half of physical memory, clamped between 256 MB and 4 GB, with Buffer and ArrayBuffer memory now counted against that limit. The release notes recommend setting the flag explicitly going forward. - WebAssembly and asm.js: asm.js is no longer compiled to WebAssembly, and the
--experimental-wasm-*flags have been renamed to--wasm-*. - Deprecations: the
domainmodule is now runtime-deprecated; the defaulthttpkeepAliveTimeoutchanges to 65 seconds;error.stackis no longer resolved through the prototype chain; and several crypto input and digest-encoding checks are now stricter. - Platform support: Intel-based macOS support is downgraded to experimental in this build.
Because it's an alpha, none of this is final — the project explicitly positions the channel as a place for library maintainers to catch breaking changes in CI well before they reach a Current or LTS release. The full V8 14.6-to-15.6 changelog was described in the release notes as still forthcoming.
The size of the V8 jump is itself notable. Moving from V8 14.6 to 15.6.75.13 in one step covers several V8 release cycles' worth of engine changes at once — something the old schedule would typically have spread across two separate major Node.js versions. That's a direct consequence of the new Alpha phase: because semver-major changes are explicitly allowed to accumulate during the six-month Alpha window rather than being staged across an odd and then an even release, a single annual major can absorb a larger batch of engine and dependency upgrades in one go.
What library and framework maintainers should do now
The Node.js release team's own guidance in the announcement is aimed squarely at the ecosystem, not just end users: add the Alpha channel to continuous integration pipelines early, rather than waiting until a version reaches Current or LTS to test against it. Under the new model, Alpha is the only phase where breaking engine and runtime changes are expected to land, which makes it the highest-value — and highest-risk — target for compatibility testing.
Concretely, that means:
- Native addon authors should rebuild and test against the 27.x alpha now, particularly anything that touches V8's serialization internals, given the new structured-clone format.
- Teams relying on
domain, legacy OpenSSL engine configurations, or the old--experimental-wasm-*flag names should treat those as on a deprecation clock for the 27.x line. - Anyone tuning memory limits in containers or serverless environments should explicitly set
--max-old-space-sizerather than relying on the new automatic half-of-physical-memory default, especially on hosts with unusual memory configurations.
What this means for developers and teams
For most production users, little changes immediately: LTS lines like Node.js 26 keep receiving security and bug fixes on their existing schedule, and the new cadence only governs how future majors are released. The practical shifts to plan for are:
- One upgrade decision per year instead of two. There's no more odd release to optionally skip — every annual major is a real, supported LTS candidate.
- Breaking changes surface earlier, in Alpha. Tooling authors, framework maintainers, and anyone running CI against "nightly" or edge builds should add the Alpha channel to their test matrix now, rather than waiting for Current.
- Fewer concurrently supported lines. With only one new major line entering support each year, teams should expect less overlap between actively maintained LTS versions than under the old odd/even system.
Teams evaluating their current Node.js footprint can compare options in our breakdown of Node.js 26 vs. Node.js 24, and bundler or tooling teams tracking ecosystem shifts may also want to see how this lines up against build-tool changes covered in Vite vs. Webpack vs. Turbopack.
The schedule isn't locked in yet
Node.js's own announcement is notably hedged: the dates and phase lengths above are the current published plan, not a guarantee. The blog post states the schedule "is not final and may be amended" and points to continued discussion at the Node.js Collaboration Summit. The project maintains the authoritative, up-to-date version of the schedule as a machine-readable schedule.json file in the nodejs/Release repository on GitHub, which is the best source to check before committing to any of the dates in this piece long-term.
What to watch next
Expect incremental alpha builds (27.0.0-alpha.1 and beyond) through early 2027 as the release team backports and tests semver-major changes, followed by beta/release-candidate builds ahead of the planned April 2027 Current release. Developers maintaining libraries, native addons, or build tooling should start validating against the 27.x alpha now, since this is the first release cycle designed specifically to surface breaking changes before they hit a supported line. Production users on Node.js 26 don't need to act yet — that LTS line continues on its existing support timeline regardless of how the 27.x schedule evolves.
Frequently asked questions
What exactly is changing about how Node.js ships major versions?
Node.js is moving from two major releases a year (one odd, one even, with only the even one becoming LTS) to one major release per year, with every release becoming a Long-Term Support (LTS) line. The change starts with Node.js 27, per the official nodejs.org blog post "Evolving the Node.js Release Schedule."
When did the first Node.js 27 build actually ship?
The first alpha build, version 27.0.0-alpha.0.0.0, was published on October 29, 2026, authored by Node.js TSC member Rafael Gonzaga, according to the official release notes on nodejs.org and the matching GitHub release tag.
Does this affect Node.js 26 or other currently supported versions?
No. Node.js 26 is explicitly named as the last release line under the old twice-a-year model and continues on its existing support schedule. The new annual cadence only governs Node.js 27 and future major versions.
When will Node.js 27.0.0 become LTS?
Per the published schedule, 27.0.0 is expected to ship as the stable "Current" release around April 2027 and enter Active LTS around October 2027, with end-of-life projected around April 2030. Node.js has cautioned that this schedule is not final and may still be amended.
Can I use the 27.0.0 alpha in production?
No. Alpha builds are explicitly pre-release and intended for compatibility testing by library authors and CI pipelines, since semver-major (breaking) changes are allowed to land during the Alpha phase. Production workloads should stay on a supported LTS line such as Node.js 26.
What is the biggest technical change in the 27.0.0 alpha so far?
The V8 JavaScript engine jumps from V8 14.6 (used in Node.js 26) to V8 15.6.75.13, one of the larger single-step V8 upgrades in a recent Node.js release. The alpha also updates OpenSSL to 4.1.0 and npm to 12.1.0, and introduces a new structured-clone/serialization format.
Sources
Felix Moreau writes Pandromeda's software coverage and how-to guides. He covers Windows, macOS and Linux updates, the apps people rely on, emulators and developer tools, and turns official documentation into clear, numbered steps that work on the current version.

