On October 29, 2026, the Node.js project published the first alpha of version 27, 27.0.0-alpha.0.0.0, alongside a full rework of its release calendar. Starting with this line, a single major release will ship every year, in April, and each one will graduate to Long-Term Support after six months of stabilization. The odd/even version split, inherited from the io.js merger a decade ago, is going away — a shift landing just months after Node.js 26 “Lithium” entered LTS.
What actually changes
The new cycle introduces a six-month Alpha phase, from October to March, during which semver-major changes are still allowed. It is followed by a Current stabilization phase running through October, then entry into LTS for 30 months. In total, each version line gets 36 months of support, from its first Current release to end of life.
The new Alpha channel
Unlike nightly builds, which are automated and untested, Alpha releases are signed, tagged, and run through CITGM (Canary in the Goldmine), which runs the test suites of major ecosystem packages against the upcoming version. The release team says this channel is aimed primarily at library authors and CI pipelines that want to catch breaking changes early, not at production environments.
Old and new model, side by side
| Milestone | Node.js 26 (current model) | Node.js 27 (new model) |
|---|---|---|
| Alpha | — | October 2026 |
| Current release | April 2026 | April 2027 |
| Enters LTS | October 2026 | October 2027 |
| End of maintenance | October 2027 | — |
| End of life | April 2029 | April 2030 |
Why the change
The current schedule is roughly ten years old and was set, according to one project contributor, as an educated guess of what enterprises would need around the time of the io.js merger. Usage data has long shown that odd-numbered releases see minimal adoption, since most teams wait for the next LTS. Maintaining four or five active version lines at once also strains a maintainer base that is overwhelmingly made up of volunteers, particularly when it comes to backporting security fixes like the one that targeted the Brotli decoder in late October.
To test a library against the alpha in a CI matrix, it’s enough to add the version line to the workflow file:
strategy:
matrix:
node-version: ['24', '26', '27.0.0-alpha.0.0.0']
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci && npm test
Every version line now becomes an LTS line: the odd/even split that confused newcomers disappears with 27.
27.0.0-alpha.1 as the example, while the first published build is tagged v27.0.0-alpha.0.0.0. The release team itself notes that the schedule “may be amended” and points to the schedule.json file in the Release repository as the authoritative source.What to remember
Node.js 27 opens an annual rhythm where every major release effectively becomes an LTS. Teams that only track LTS lines will barely notice a change in their habits; library maintainers, on the other hand, have good reason to wire the Alpha channel into their CI now, to catch breaking changes well before the April 2027 Current release.
This tighter calendar is a good call. I’ve more than once lost time debugging a behavior that only showed up on an odd-numbered release no client was ever running in production — collapsing to one annual line, always destined to become LTS, cuts a layer of testing that wasn’t adding much. Whether the Alpha channel genuinely draws in package maintainers, or ends up like nightlies before it, a tool reserved for a handful of regulars, remains to be seen. — Simon Janvier
To go further: the full official announcement is available on the Node.js blog.
