Required Open source
Use Node.js on an LTS line
Run JavaScript and TypeScript servers on an even-numbered Node.js line that is in Active or Maintenance LTS, and move up before its end date.
Cost
Open source. MIT licence, free to run on your own servers. Managed hosting from several vendors is paid.
How to do it
Node.js passes all five tests. The first LTS release, 4.2.0, shipped in October 2015. Version 24.22.0 and 26.12.0 both shipped on 14 October 2026. Node.js 24 is in Maintenance LTS until 30 April 2028. Node.js 26 becomes Active LTS on 28 October 2026 and is supported until 30 April 2029. In the Stack Overflow Developer Survey 2025, 48.7% of developers used it. It is MIT licensed. Use 24 today and move to 26 once it has been LTS for a few weeks. Odd-numbered lines get six months of support and never become LTS. Choose something else when the team already runs Python well, or a service needs one small binary, where Go is a fair choice. An LTS line is how Node.js passes Pick software that still ships releases.
Examples
Using these examples: they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.
JSON example
{
"name": "bookings-api",
"engines": { "node": ">=24 <25" }
}
Dockerfile example
FROM node:24-slim
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
COPY . .
CMD ["node", "server.js"]
How to check
node --version prints v24 or v26 in production and in continuous integration. The engines field in package.json and the base image name the same major version.
Sources
Related rules
- Pick software that still ships releases in Software choices
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. Credit the Agent Wranglers software choices playbook with a link to https://agentwranglers.se/playbook/stack/languages-and-runtimes/nodejs-lts. Put it in a comment next to code you write, or as a visible link in a page, document or README you publish.