Latest Stable
26.2.0
Released 20 May 2026
(4 days ago)
Software
Node.js
IntroductionNode.js is an open-source, cross-platform JavaScript runtime environment built on Chrome’s V8 engine. It allows developers to run JavaScript on the server-side, enabling fast, scalable, and event-driven applications. Known for its non-blocking I/O model, Node.js is ideal for building real-time web apps, APIs, microservices, and command-line tools.
DeveloperOpenJS Foundation
TypeRuntime environment
Repositoryhttps://github.com/nodejs/node
Websitehttps://nodejs.org
Security policyhttps://github.com/nodejs/node/security/policy
LicenseMIT license
LATEST RELEASES:
24.16.0 21 May 2026 (3 days ago)
26.2.0 20 May 2026 (4 days ago)
22.22.3 13 May 2026 (11 days ago)
26.1.0 06 May 2026 (18 days ago)
26.0.0 05 May 2026 (19 days ago)

All Releases

Node.js support lifecycle 2022 2023 2024 2025 2026 2027 2028 2029 2030 26 Version: 26 Status: Supported End of bug fixes: 2026-05-05 to 2027-10-20 Version: 26 Status: Supported End of security fixes: 2027-10-20 to 2029-04-30 25 Version: 25 Status: EOL End of bug fixes: 2025-10-15 to 2026-04-01 Version: 25 Status: Supported End of security fixes: 2026-04-01 to 2026-06-01 24 (LTS) Version: 24 Status: Supported End of bug fixes: 2025-05-06 to 2026-10-20 Version: 24 Status: Supported End of security fixes: 2026-10-20 to 2028-04-30 23 Version: 23 Status: EOL End of bug fixes: 2024-10-16 to 2025-04-01 Version: 23 Status: EOL End of security fixes: 2025-04-01 to 2025-06-01 22 (LTS) Version: 22 Status: EOL End of bug fixes: 2024-04-24 to 2025-10-21 Version: 22 Status: Supported End of security fixes: 2025-10-21 to 2027-04-30 21 Version: 21 Status: EOL End of bug fixes: 2023-10-17 to 2024-04-01 Version: 21 Status: EOL End of security fixes: 2024-04-01 to 2024-06-01 20 (LTS) Version: 20 Status: EOL End of bug fixes: 2023-04-17 to 2024-10-22 Version: 20 Status: EOL End of security fixes: 2024-10-22 to 2026-04-30 18 (LTS) Version: 18 Status: EOL End of bug fixes: 2022-04-18 to 2023-10-18 Version: 18 Status: EOL End of security fixes: 2023-10-18 to 2025-04-30 Today: 2026-05-24 Today End of bug fixes End of security fixes
VersionStatusCodenamenpm versionInitial releaseLatest releaseEnd of bug fixesEnd of security fixes
26.x
Supported
11.13.026.0.0
05 May 2026
(19 days ago)
26.2.0
20 May 2026
(4 days ago)
20 Oct 2027
(Ends in 1 year, 4 months)
30 Apr 2029
(Ends in 2 years, 11 months)
25.x
Supported
11.12.125.0.0
15 Oct 2025
(7 months ago)
25.9.0
31 Mar 2026
(1 month ago)
01 Apr 2026
(Ended 1 month ago)
01 Jun 2026
(Ends in 9 days)
24.xLTS
Supported
Krypton11.13.024.0.0
06 May 2025
(1 year ago)
24.16.0
21 May 2026
(3 days ago)
20 Oct 2026
(Ends in 4 months)
30 Apr 2028
(Ends in 1 year, 11 months)
23.x
End of life
10.9.223.0.0
16 Oct 2024
(1 year ago)
23.11.1
14 May 2025
(1 year ago)
01 Apr 2025
(Ended 1 year, 1 month ago)
01 Jun 2025
(Ended 11 months ago)
22.xLTS
Supported
Jod10.9.822.0.0
24 Apr 2024
(2 years ago)
22.22.3
13 May 2026
(11 days ago)
21 Oct 2025
(Ended 7 months ago)
30 Apr 2027
(Ends in 11 months)
21.x
End of life
10.5.021.0.0
17 Oct 2023
(2 years ago)
21.7.3
10 Apr 2024
(2 years ago)
01 Apr 2024
(Ended 2 years, 1 month ago)
01 Jun 2024
(Ended 1 year, 11 months ago)
20.xLTS
End of life
Iron10.8.220.0.0
17 Apr 2023
(3 years ago)
20.20.2
24 Mar 2026
(2 months ago)
22 Oct 2024
(Ended 1 year, 7 months ago)
30 Apr 2026
(Ended 23 days ago)
19.x
End of life
9.6.319.0.0
17 Oct 2022
(3 years ago)
19.9.0
10 Apr 2023
(3 years ago)
01 Apr 2023
(Ended 3 years, 1 month ago)
01 Jun 2023
(Ended 2 years, 11 months ago)
18.xLTS
End of life
Hydrogen10.8.218.0.0
18 Apr 2022
(4 years ago)
18.20.8
27 Mar 2025
(1 year ago)
18 Oct 2023
(Ended 2 years, 7 months ago)
30 Apr 2025
(Ended 1 year ago)
17.x
End of life
8.11.017.0.0
19 Oct 2021
(4 years ago)
17.9.1
01 Jun 2022
(3 years ago)
01 Jun 2022
(Ended 3 years, 11 months ago)
01 Jun 2022
(Ended 3 years, 11 months ago)
16.xLTS
End of life
Gallium8.19.416.0.0
20 Apr 2021
(5 years ago)
16.20.2
08 Aug 2023
(2 years ago)
18 Oct 2022
(Ended 3 years, 7 months ago)
11 Sep 2023
(Ended 2 years, 8 months ago)
15.x
End of life
7.7.615.0.0
20 Oct 2020
(5 years ago)
15.14.0
06 Apr 2021
(5 years ago)
01 Jun 2021
(Ended 4 years, 11 months ago)
01 Jun 2021
(Ended 4 years, 11 months ago)
14.xLTS
End of life
Fermium6.14.1814.0.0
21 Apr 2020
(6 years ago)
14.21.3
16 Feb 2023
(3 years ago)
19 Oct 2021
(Ended 4 years, 7 months ago)
30 Apr 2023
(Ended 3 years ago)
13.x
End of life
6.14.413.0.0
22 Oct 2019
(6 years ago)
13.14.0
29 Apr 2020
(6 years ago)
01 Jun 2020
(Ended 5 years, 11 months ago)
01 Jun 2020
(Ended 5 years, 11 months ago)
12.xLTS
End of life
Erbium6.14.1612.0.0
23 Apr 2019
(7 years ago)
12.22.12
05 Apr 2022
(4 years ago)
30 Nov 2020
(Ended 5 years, 5 months ago)
30 Apr 2022
(Ended 4 years ago)
11.x
End of life
6.7.011.0.0
23 Oct 2018
(7 years ago)
11.15.0
30 Apr 2019
(7 years ago)
01 Jun 2019
(Ended 6 years, 11 months ago)
01 Jun 2019
(Ended 6 years, 11 months ago)
10.xLTS
End of life
Dubnium6.14.1210.0.0
24 Apr 2018
(8 years ago)
10.24.1
06 Apr 2021
(5 years ago)
19 May 2020
(Ended 6 years ago)
30 Apr 2021
(Ended 5 years ago)
9.x
End of life
5.6.09.0.0
31 Oct 2017
(8 years ago)
9.11.2
12 Jun 2018
(7 years ago)
30 Jun 2018
(Ended 7 years, 10 months ago)
30 Jun 2018
(Ended 7 years, 10 months ago)
8.xLTS
End of life
Carbon6.13.48.0.0
30 May 2017
(8 years ago)
8.17.0
17 Dec 2019
(6 years ago)
01 Jan 2019
(Ended 7 years, 4 months ago)
31 Dec 2019
(Ended 6 years, 4 months ago)
7.x
End of life
4.2.07.0.0
25 Oct 2016
(9 years ago)
7.10.1
11 Jul 2017
(8 years ago)
30 Jun 2017
(Ended 8 years, 10 months ago)
30 Jun 2017
(Ended 8 years, 10 months ago)
6.xLTS
End of life
Boron3.10.106.0.0
26 Apr 2016
(10 years ago)
6.17.1
03 Apr 2019
(7 years ago)
30 Apr 2018
(Ended 8 years ago)
30 Apr 2019
(Ended 7 years ago)
5.x
End of life
3.8.65.0.0
29 Oct 2015
(10 years ago)
5.12.0
23 Jun 2016
(9 years ago)
30 Jun 2016
(Ended 9 years, 10 months ago)
30 Jun 2016
(Ended 9 years, 10 months ago)
4.xLTS
End of life
Argon2.15.114.0.0
08 Sep 2015
(10 years ago)
4.9.1
29 Mar 2018
(8 years ago)
01 Apr 2017
(Ended 9 years, 1 month ago)
30 Apr 2018
(Ended 8 years ago)
0.12.x
End of life
2.15.110.12.0
06 Feb 2015
(11 years ago)
0.12.18
22 Feb 2017
(9 years ago)
01 Apr 2016
(Ended 10 years, 1 month ago)
31 Dec 2016
(Ended 9 years, 4 months ago)
0.10.x
End of life
2.15.10.10.0
11 Mar 2013
(13 years ago)
0.10.48
18 Oct 2016
(9 years ago)
01 Oct 2015
(Ended 10 years, 7 months ago)
31 Oct 2016
(Ended 9 years, 6 months ago)

Understanding the Node.js LTS and Release Lifecycle

Node.js ships a new major version every six months -- one in April, one in October. The catch: not all releases are created equal. Odd-numbered major versions (the October releases) are Current releases that live for roughly six to eight months and are never promoted to LTS. Even-numbered major versions (the April releases) are the ones that matter for production -- they enter Long-Term Support (LTS) in October of the same year and receive official support for 30 months total.

Those 30 months break into two phases:

PhaseDurationWhat Is Covered
Active LTS18 monthsBug fixes, security patches, performance improvements, documentation updates
Maintenance LTS12 monthsCritical bug fixes and security patches only -- no new features

After Maintenance ends, the release line becomes End of Life. The Node.js project publishes a public release schedule at nodejs.org/en/about/previous-releases that maps every major version to its exact support window. The dates shown in the release table above come directly from that schedule.

In practice, most engineering teams target the current Active LTS release for production. If you are on a Maintenance version, you should already be planning your upgrade -- you are one disclosed CVE away from being on unsupported software.

What Are the Real Risks of Running an EOL Node.js Version?

Running an end-of-life Node.js version in production is not a theoretical problem -- it has concrete, day-to-day consequences for every team doing it.

No security patches. Node.js bundles V8, OpenSSL, libuv, and other dependencies. When a CVE is disclosed in any of these components, the fix ships to supported versions only. EOL versions stay vulnerable. Because Node.js is a runtime -- meaning it executes arbitrary code, handles network traffic, and processes user input -- an unpatched TLS or parser vulnerability is directly exploitable.

npm ecosystem drift. Popular packages regularly drop support for EOL Node.js versions. You will start seeing install warnings, then hard failures. Native addon packages (those compiled with node-gyp) are particularly aggressive about this -- they tie directly to Node.js's ABI version, and a new major release breaks compatibility immediately without a recompile.

Toolchain incompatibility. CI runners, Docker base images, serverless platforms, and PaaS providers stop shipping EOL Node.js images. You end up maintaining custom base images just to stay on an unsupported runtime -- exactly the opposite of reducing maintenance overhead.

No bug fixes. Any runtime bug you hit -- memory leak, stream behavior, event loop quirk -- will not be fixed upstream. You are on your own.

What Actually Happens When Node.js Support Ends?

When a Node.js major version reaches End of Life, the Node.js project stops publishing security releases for it. The GitHub repository remains public and the source code does not disappear, but no one from the project is responsible for it anymore.

The practical downstream effects happen quickly:

  • The official Docker Hub node image stops receiving updates for that tag. The image goes stale and accumulates OS-level vulnerabilities on top of the Node.js ones.
  • Vulnerability scanners (Snyk, Dependabot, Trivy) start flagging the Node.js version itself as a finding, not just your dependencies. This creates noise in security reviews.
  • Cloud providers (AWS Lambda, Google Cloud Functions, Azure Functions) deprecate the runtime and eventually remove it from the available list, giving you a forced upgrade deadline.
  • The npm CLI starts printing warnings when it detects an unsupported Node.js version at install time.

The Node.js ecosystem moves faster than most runtimes. A version that was current eighteen months ago can feel very far behind today. Most teams find that staying within one or two major versions of the current LTS is the sustainable baseline -- it keeps upgrade steps small and tooling compatible.

How To Check Your Node.js Version

The fastest way to check your Node.js version on any platform:

node --version
# example output: v22.14.0

# Also check bundled npm version
npm --version

# Check the full environment detail
node -e "console.log(process.versions)"

If you manage multiple Node.js versions across projects, a version manager gives you both the version check and the switch:

# With nvm (Node Version Manager)
nvm current          # show active version
nvm ls               # list all installed versions
nvm ls-remote        # list all available versions
nvm use --lts        # switch to latest LTS

# With fnm (Fast Node Manager, cross-platform)
fnm current
fnm list
fnm use --lts

In production environments, check the Node.js version programmatically at startup and log it. This makes it trivial to audit which version each service instance is running when reviewing deployment logs. You can also inspect the process.release.lts property -- it returns the LTS codename string (e.g., "Jod") if the current runtime is an LTS version, or false if it is not.

// Log at startup to make version auditing easy
console.log({
  nodeVersion: process.version,
  lts: process.release.lts,
  platform: process.platform,
});

FAQ

Q1: What is the difference between a Current and an LTS release?
Current releases are six-month experimental tracks where new features land first. They are fine for personal projects or evaluating what is coming next, but they are not suitable for production because they do not receive extended support. LTS releases (even-numbered majors) are what most teams should run in production -- they get 30 months of security and bug fix updates on a predictable schedule.

Q2: How often should I upgrade Node.js in production?
A reasonable cadence is: follow Active LTS releases, and give yourself a few months after a new LTS lands to evaluate it before migrating. That typically means upgrading once every two to three years for conservative teams, or tracking each Active LTS window for teams that want the latest performance and V8 improvements. The key signal is the transition from Active to Maintenance -- that is when you should have an upgrade already tested and scheduled.

Q3: Does my .nvmrc file guarantee the same Node.js version in CI as locally?
Only if your CI runner is also configured to read .nvmrc or .node-version. Most CI platforms (GitHub Actions, CircleCI, GitLab CI) have built-in Node.js setup actions that respect these files when you specify node-version: 'file'. Without that, the CI runner uses whatever Node.js version it happens to have installed -- which may drift over time. Always pin explicitly in both local and CI configurations.

Q4: Can I run multiple Node.js versions on the same machine?
Yes, and for most development environments you should. Tools like nvm (macOS/Linux), nvm-windows, fnm, or volta let you install and switch between any number of Node.js versions in a single shell command. This lets you test upgrades without affecting other projects and run different services that have different version requirements on the same machine.

Q5: Does Node.js version affect native addon compatibility?
Yes -- this is one of the most common upgrade pain points. Native addons (packages with C/C++ code compiled via node-gyp) are compiled against a specific Node.js ABI version, which changes with each major release. When you upgrade Node.js, any native addon must be recompiled for the new ABI. Run npm rebuild after upgrading Node.js to recompile installed native addons. Packages that use Node-API (formerly N-API) are more resilient -- they target a stable ABI layer and typically do not need recompilation across Node.js major versions.