On this page · 11 sections
- What happens on 22 April 2027
- The phases, as the Release Working Group now defines them
- What is already in the Node.js 27 alpha
- Fewer lines to track, and why that matters
- Planning rule: skip at most one line
- What platforms are likely to do with Node.js 27
- Setting your version policy for 2027 to 2030
- Key dates, 2026 to 2030
- Compliance and regional notes
- How eCorpIT can help
- References
Summary. Node.js 27.0.0 is scheduled for 22 April 2027 as the first release line on the annual model. The Release Working Group lists alpha from 28 October 2026, Current from 22 April 2027, LTS from 20 October 2027 and end of life on 30 April 2030. That is 30 months of LTS and 36 months from first Current release to end of life. Three things differ from earlier lines. Every major now becomes LTS, so the odd/even split ends with Node.js 26. New lines have no Maintenance phase. Version numbers follow the calendar year, so 28.0.0 is planned for April 2028. The first alpha, 27.0.0-alpha.0.0.0, appeared on 29 October 2026 with V8 15.6, OpenSSL 4.1 and npm 12.1.0, and it already changes the default heap limit and ends OpenSSL engine support. From 22 to 30 April 2027, four lines are supported at once (22, 24, 26 and 27). Production guidance does not change: run LTS, which in April 2027 means 26 or 24, and treat 27 as a test target until October. The planning rule is new: each line ends only six months after the line two versions newer reaches LTS, so skip at most one line between upgrades.
About this article. For engineering leads and platform teams planning Node.js upgrades. Dates were checked on 1 November 2026 against the Release Working Group schedule, the nodejs.org announcement and release notes, and AWS, Microsoft, Google Cloud and Vercel documentation. The project says its dates may change, and the 27.x feature list below comes from an alpha. This is not legal advice, and no vendor paid for inclusion. Researched with AI assistance and reviewed by our editorial team.
We covered the announcement itself in July 2026 in our note on the one-release-a-year change. This piece covers what the release line looks like in practice, what is already in the alpha, and the planning arithmetic. If you are still on Node.js 22, start with our Node.js 22 end-of-life migration guide.
What happens on 22 April 2027
Node.js 27.0.0 moves from Alpha to Current. Under the Release Working Group's plan, each April the line that has been in alpha since October gets its first semver-major release and enters Current. It stays Current for six months, then moves to LTS in October through a semver-minor release. Nothing else on the calendar moves on 22 April, but the next eight days are unusual. The phases below follow the group's schedule.json.
| Date | 22.x | 24.x | 26.x | 27.x |
|---|---|---|---|---|
| 1 Nov 2026 | Maintenance LTS | Maintenance LTS | Active LTS | Alpha |
| 22 Apr 2027 | Maintenance LTS (8 days left) | Maintenance LTS | Active LTS | Current (27.0.0) |
| 1 May 2027 | End of life | Maintenance LTS | Active LTS | Current |
| 20 Oct 2027 | End of life | Maintenance LTS | Maintenance LTS | Active LTS |
| 1 May 2028 | End of life | End of life | Maintenance LTS | Active LTS |
For eight days the project supports four lines. On 1 May 2027 that drops to three. Node.js 26 remains the newest line suitable for production through the whole Current phase of 27, because the project says production applications should use only Active LTS or Maintenance LTS releases.
Version numbering also changes meaning. Under the old model, an odd number signalled a six-month line that most teams skipped. Node.js 27 is odd and will be LTS. Any internal policy, Renovate rule or base-image script that filters on even majors needs rewriting before 22 April, or it will silently ignore 27 for its entire life.
The phases, as the Release Working Group now defines them
The announcement, last updated on 10 March 2026, and the Release repository README define the phases. Release lines up to and including 26 keep the old rules; 27 onwards follow the new ones.
| Phase | Applies to | Duration | What lands |
|---|---|---|---|
| Alpha | 27 onwards | 6 months (Oct to Mar) | Most changes from main, including semver-major; API and ABI may change between alphas |
| Current | All lines | 6 months (Apr to Oct) | Most non-breaking changes from main |
| Active LTS | All LTS lines | 30 months for 27 onwards; 12 months for recent lines up to 26 | Audited features, fixes and updates judged stable for the line |
| Maintenance LTS | Lines up to 26 only | 18 months | Critical bug fixes and security updates; features only to support migration |
| End of life | All lines | Indefinite | Nothing |
The Maintenance row is the quiet change. Node.js 24 and 26 still drop to Maintenance after 12 months of Active LTS, so their last 18 months carry security fixes and little else. Node.js 27 and later stay in Active LTS until end of life, so the Release team can keep backporting audited features for the whole 30 months. A late-life 27.x should therefore be more current than a late-life 24.x.
A few process rules matter for planning:
- Alpha releases are signed, tagged and tested through CITGM, the project's tool that runs the test suites of major open-source packages against upcoming releases. Nightly builds remain untested automated builds.
- Alpha cadence is flexible. The Release team decides timing and frequency based on the volume of changes. The first alpha used the version string
27.0.0-alpha.0.0.0, which differs from the27.0.0-alpha.1example in the announcement, so do not hard-code a prerelease pattern in tooling.
- Changes normally live in an Alpha or Current release for at least two weeks before they are backported to LTS lines.
- Phase dates are fixed no later than the first day of the month in which they change, and the team gives at least 14 days' notice of any change to a release date.
- Every LTS line gets a codename. Node.js 26 received Lithium at its LTS promotion on 28 October 2026. The project's list expects Magnesium for 27 and Neon for 28, and says future names may change.
What is already in the Node.js 27 alpha
The 27.0.0-alpha.0.0.0 release notes, dated 29 October 2026, show what the line is accumulating. Semver-major changes can still land until April, so treat this as a preview of the 27.0.0 changelog, not the final list.
- V8 15.6, up from 14.6 in Node.js 26. New defaults include
Math.sumPrecise(),Iterator.zip(),Iterator.prototype.join()andIterator.prototype.includes().
- Memory defaults change. Without
--max-old-space-size, the heap limit becomes half of physical memory, clamped between 256 MB and 4 GB, and memory held byBufferandArrayBuffernow counts toward that limit. Containers that relied on the old default should set the flag explicitly.
- Serialisation format change.
v8.serialize(),structuredClone()andpostMessage()use a format older Node.js releases cannot read. Anything that persists or exchanges V8-serialised data between versions needs a plan.
- OpenSSL 4.1.0, with OpenSSL 3 or later required for builds, the bundled FIPS provider build removed and OpenSSL engine support ended. Teams that relied on the bundled FIPS build or on engines (for example, some hardware security module setups) should test early.
- Intel macOS downgraded to experimental. The first alpha still shipped an Intel macOS package, but expect weaker platform guarantees.
- npm 12.1.0 replaces npm 11.
- HTTP behaviour. The
keepAliveTimeoutdefault rises to 65 seconds,req.headersgets a null prototype, responses that exceed the header limit are rejected and HTTP/2 default window sizes increase.
- Deprecations and removals. The
domainmodule is runtime-deprecated, the legacy_tls_*modules reach end of life, and the legacy AsyncLocalStorage implementation is removed.
- Additions. A new
--allow-envpermission for the permission model, an experimentalnet/promisesAPI and a nativefsglob implementation.
- Addon ABI. The notes move
NODE_MODULE_VERSIONto 153. The project warns that ABI can change between alphas, so treat that number as provisional.
The project's commitment on V8 is unchanged: latest releases will include a V8 version at most about six months old, and the alpha window lets V8 updates land earlier in the cycle.
Fewer lines to track, and why that matters
The announcement's main argument is sustainability. Node.js is maintained mostly by volunteers, and security releases across four or five active lines had become hard to sustain. The new model cuts the count.
Under the old model, four lines were often supported at once. In November 2025, for example, 20, 22, 24 and 25 were all supported. Once Node.js 26 ages out, the published timeline settles into three supported lines:
| Sample date | Supported lines | Count |
|---|---|---|
| Nov 2025 (old model) | 20, 22, 24 (LTS), 25 (Current) | 4 |
| Nov 2026 (transition) | 22, 24, 26 (LTS), plus 27 alpha | 3 + alpha |
| May 2027 (transition) | 24, 26 (LTS), 27 (Current) | 3 |
| Nov 2028 (new model) | 26, 27, 28 (LTS), plus 29 alpha | 3 + alpha |
| May 2029 (new model) | 27, 28 (LTS), 29 (Current) | 3 |
If later Aprils follow the 2027 pattern, a short overlap of four lines will recur each spring, when the new line enters Current just before the oldest line ends.
For your team, the practical effect is that one security release from the project usually means three builds to watch, not four or five, and each of those lines has a clear end date that falls in April.
Planning rule: skip at most one line
Here is the arithmetic the new model forces. Line N becomes Current in April of year Y, LTS in October of Y and reaches end of life in April of Y+3. Line N+2 becomes LTS in October of Y+2, six months before N ends. Line N+3 only becomes Current in April of Y+3, the same month N ends, and it does not reach LTS until six months later.
| You run | Its end of life | N+1 reaches LTS | N+2 reaches LTS (overlap) | N+3 status when N ends |
|---|---|---|---|---|
| 26 | 30 Apr 2029 | 27: 20 Oct 2027 | 28: Oct 2028 (6 months) | 29: just entering Current |
| 27 | 30 Apr 2030 | 28: Oct 2028 | 29: Oct 2029 (6 months) | 30: just entering Current |
| 28 | Apr 2031 | 29: Oct 2029 | 30: Oct 2030 (6 months) | 31: just entering Current |
Dates for lines 28 to 31 come from the announcement's ten-year table, which the project says may be amended; schedule.json currently lists exact dates only up to 27. The conclusion is the same either way:
- Annual cadence (every line). Adopt each line at LTS in October and leave it 12 months later. You always run a line with at least 18 months of support left.
- Biennial cadence (every second line). Adopt N+2 at LTS and finish within six months. This halves the number of upgrades but leaves no slack: a slipped project means running an unsupported runtime.
- Skipping two lines (N to N+3) is only possible by running a Current release in production or accepting a period without upstream support. Neither belongs in a production policy.
For most product teams, the biennial cadence with a fixed October-to-March upgrade window is the efficient choice. Teams with many services or slow change control should run annually so that a slipped quarter is not a compliance event. Node.js 24 is a special case because line 25 never became LTS: it ends on 30 April 2028, so its last safe hops are to 26 or 27. Our comparison of Node.js 24, 26 and 27 works through those paths.
What platforms are likely to do with Node.js 27
The managed platforms tie their runtimes to the upstream LTS phase, which sets realistic expectations for 27.
- AWS Lambda says it provides managed runtimes for new language versions only when a release reaches LTS, and it lists November 2026 as the indicative launch month for Node.js 26. When it launched public preview runtimes in August 2026, it said it would not take Node.js 26 to general availability before Active LTS, and it called previews an experiment it hopes to make the default. Applied to 27, that policy implies a possible preview after 22 April 2027 and general availability no earlier than 20 October 2027.
- Vercel made Node.js 26 generally available and the default on 29 October 2026, one day after LTS promotion.
- Azure Functions listed only Node.js 22 and 24 on its supported languages page, last updated on 22 October 2026, so expect a lag after LTS.
- Google Cloud Run functions listed
nodejs26as Preview on its runtime schedule, last updated on 26 October 2026.
Our inference for planners: budget for Node.js 27 to be available as a supported managed runtime in the fourth quarter of 2027 at the earliest, and for some platforms in 2028. Container-based services can move sooner, since you control the image.
Setting your version policy for 2027 to 2030
A written policy beats a per-service debate. This is our suggested sketch, not project guidance:
| Team type | Production target | Test matrix | Upgrade trigger |
|---|---|---|---|
| Product and API teams | Newest LTS your platforms support at GA | Production line plus newest LTS | Each October (annual) or every second October (biennial) |
| Library and SDK authors | Not applicable | All supported LTS lines plus the current alpha | Fix alpha breakage before April |
| Platform and DevOps teams | Two LTS lines in golden images | All lines in the images you publish | Publish new images within 30 days of LTS |
| Regulated workloads | LTS only, with documented end-of-life dates | Production line plus next LTS | Finish moves at least 3 months before end of life |
Encode it in CI so it is enforced rather than remembered. This GitHub Actions matrix tests the two production lines and adds 27 as a non-blocking job after 22 April 2027:
jobs:
test:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
node: ['24', '26']
experimental: [false]
include:
- node: '27'
experimental: true
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node }}
- run: npm ci
- run: npm test
Pair it with a pinned engines.node value such as 26.x. An open range is not safe: Vercel says a range that allows 26, such as >=20, moves the build to 26 on the next deployment. Pin container images to a major tag such as node:26-slim, not a floating lts tag, so the October promotion does not change a production image without review.
Key dates, 2026 to 2030
These dates come from schedule.json, the release notes and, for 28.0.0, the announcement's timeline.
| Date | Event |
|---|---|
| 28 Oct 2026 | Node.js 26 becomes LTS (Lithium); 27 alpha window opens |
| 29 Oct 2026 | 27.0.0-alpha.0.0.0 published (V8 15.6) |
| 22 Apr 2027 | 27.0.0 released as Current |
| 30 Apr 2027 | Node.js 22 end of life |
| 20 Oct 2027 | 27 becomes LTS; 26 enters Maintenance; 28 alpha expected |
| Apr 2028 | 28.0.0 Current (announcement timeline) |
| 30 Apr 2028 | Node.js 24 end of life |
| 30 Apr 2029 | Node.js 26 end of life, the last old-model line |
| 30 Apr 2030 | Node.js 27 end of life |
Compliance and regional notes
For Indian teams, section 8(5) of the Digital Personal Data Protection Act 2023 requires data fiduciaries to take reasonable security safeguards, and an end-of-life runtime is difficult to defend once a fix exists upstream. The annual model helps here: end-of-life dates now fall in April every year, so they can sit in the same compliance calendar as certificate renewals and audit cycles. FIPS-bound workloads should track the alpha's removal of the bundled FIPS provider build. Our DPDP Act engineering playbook covers the broader controls.
How eCorpIT can help
eCorpIT is a Gurugram-based technology organisation, founded in 2021, assessed at CMMI Level 5 and MSME certified, with senior-led engineering teams working across AWS, Microsoft and Google platforms. Our application development services team can turn the annual Node.js schedule into a working policy: version standards, CI matrices, golden container images and staged rollouts. Talk to us at /contact-us/.
Last updated: 1 November 2026.