Linux Basics

Node.js release schedule, October 2026: supported versions, the new yearly cycle and server upgrades

Node.js 26 is now Active LTS, 24 and 22 are in maintenance and 20 is end-of-life. What the new yearly schedule means and how to upgrade servers safely.

Published
Reading time
6 min read

Node.js 26 became the Active LTS line on 28 October 2026, Node.js 24 moved to Maintenance LTS on 20 October, and Node.js 20 reached end-of-life on 30 April 2026. At the same time the project has started a new, yearly release cycle beginning with Node.js 27. This article summarises where each line stands, what changes from Node.js 27 onward, and how to move a production server to a supported version without surprises.

Where each release line stands

LineCodenameStatus on 31 Oct 2026End-of-lifeLatest release
27.xnone yetAlpha (not for production)30 Apr 2030 (planned)alpha builds
26.xLithiumActive LTS since 28 Oct 202630 Apr 202926.13.0 (28 Oct 2026)
24.xKryptonMaintenance LTS since 20 Oct 202630 Apr 202824.22.2 (27 Oct 2026)
22.xJodMaintenance LTS30 Apr 202722.23.4 (20 Oct 2026)
25.xnoneEnd-of-life1 Jun 202625.9.0
20.xIronEnd-of-life30 Apr 202620.20.2

The Node.js project's guidance is short: production applications should only use Active LTS or Maintenance LTS releases. Maintenance LTS lines receive critical bug fixes and security updates; Active LTS lines also receive audited improvements. The Release working group notes that dates are subject to change, so check the official schedule before you plan around a specific day.

What changes from Node.js 27

Until now, Node.js shipped two major versions a year: even-numbered lines in April became LTS, and odd-numbered lines in October were short-lived. The project announced that, starting with 27.x, it moves to one major release per year:

  • A new line is branched each October and gets Alpha releases for six months. Alpha builds may include breaking changes and are meant for library authors and CI pipelines, not production.
  • Each April the line gets its first stable release (for example 27.0.0 in April 2027) and is Current for six months.
  • Each October it is promoted to LTS and supported for 30 months, 36 months in total. Every line becomes LTS, so the odd/even distinction disappears.
  • Version numbers will line up with the calendar year of their first Current release: 27.0.0 in 2027, 28.0.0 in 2028.

For teams that only run LTS versions, little changes in practice: you will still upgrade roughly once a year or every other year, with overlapping support windows to migrate in.

Check what your servers run

node -v
command -v node
apt policy nodejs

The third command shows whether node comes from your distribution or from another repository. Distribution packages often sit on an older line: Debian 12 (bookworm) packages Node.js 18.20.4, Debian 13 (trixie) packages 20.19.2, and Ubuntu 24.04 packages 18.19.1. Debian's security tracker shows that Debian ships security updates for these packages, but they stay on lines the upstream project no longer supports, and many npm packages and frameworks set their minimum version by upstream support. If your application needs a current line, install it from another source.

Installing a current LTS line

Two common routes on Debian and Ubuntu servers:

  • NodeSource's apt repository, which publishes setup scripts per major line (for example setup_26.x and setup_24.x). The script adds the repository and its signing key; read it before running it as root.
  • Official binaries from nodejs.org/dist, verified against the published SHASUMS256.txt, which is itself signed.
# NodeSource, Node.js 26 LTS
curl -fsSL https://deb.nodesource.com/setup_26.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo -E bash nodesource_setup.sh
sudo apt install -y nodejs
node -v

One detail from the Node.js 26 LTS release notes: since Node.js 25, the official Linux binaries are linked against libatomic, which some distributions do not install by default. On Debian and Ubuntu it is the libatomic1 package. Version managers such as nvm are convenient on developer machines, but they install into a user's home directory, which makes them awkward for system services.

Upgrading a production app, step by step

  1. Pick the target. Node.js 26 gives the longest runway (to April 2029); Node.js 24 is the more established choice (to April 2028). Anything on 20 or older should move now; 22 has until 30 April 2027.
  2. Read the release notes for every major version you are skipping, and check your framework's supported versions.
  3. Declare it. Set the engines field in package.json (for example "node": ">=24") so tooling warns about mismatches.
  4. Test in CI on the target version, including a clean npm ci.
  5. Rebuild native addons. Addons built on Node-API are designed to run on later major versions without recompiling; others must be rebuilt, which npm rebuild does after a Node.js upgrade.
  6. Stage, then roll out. Upgrade a staging server, run the app under real load for a day, then upgrade production in a maintenance window and restart the service (for example sudo systemctl restart myapp).
  7. Keep a way back. Note the previous package version or keep the previous binary directory so you can roll back quickly.

Common pitfalls

  • systemd services do not read your shell profile. Use an absolute path to node in ExecStart= and confirm it after the upgrade.
  • Globally installed npm tools are tied to the Node.js installation; reinstall them after switching.
  • Docker images pin Node.js through the base image tag; update the tag in your Dockerfile, not just on the host.

If you run Node.js apps on Skyline's web hosting rather than your own server, they run on Node.js 22 LTS managed from S Panel; that line is supported under the project's schedule until 30 April 2027.

What you should do

  1. Run node -v on every server and container and list anything on 20.x or older.
  2. Choose Node.js 24 or 26 as your target and test your application on it in CI.
  3. Install from NodeSource or official binaries if your distribution's package is on an unsupported line, and install libatomic1 if you use the official binaries.
  4. Rebuild native addons, stage the change, and keep a rollback path.
  5. Put 30 April 2027 (end of Node.js 22) and 30 April 2028 (end of Node.js 24) in your maintenance calendar.

Sources

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Linux Basics for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.