Node.js
In-depth entryby OpenJS Foundation · Language · also known as Node, NodeJS
Server-side JavaScript runtime built on the V8 engine, governed by the OpenJS Foundation, with npm as its package ecosystem
Overview
Node.js is a JavaScript runtime that runs outside the browser, built on Chrome's V8 engine and maintained by the Node.js project under the OpenJS Foundation. It exposes an event-driven, non-blocking I/O model and a standard library for file systems, networking, streams, child processes, cryptography and worker threads. The bundled npm client and registry give access to the largest package ecosystem of any language.
Node is the reference runtime for most JavaScript tooling: bundlers, linters, test runners and frameworks such as Next.js, Express and Hono are developed and tested against it first. Release lines alternate between Current and Long-Term Support, with even-numbered majors receiving roughly thirty months of maintenance, which is why production deployments usually pin an LTS line. Recent releases have added native TypeScript type stripping, a built-in test runner, a permission model, and stable fetch and Web Streams, reducing the need for third-party dependencies in small projects.
Typical deployment runs a process manager such as PM2 or a container per service, often behind a reverse proxy. Node suits I/O-bound services, APIs, build tooling and server-side rendering.
Its limits are structural: a single-threaded event loop means CPU-heavy work must move to worker threads or another language; dependency trees from npm can be large and need auditing; and the ESM/CommonJS module split still causes friction in older packages. Version management across machines typically relies on tools such as nvm, fnm or Volta.
Capabilities
- Event-driven, non-blocking I/O runtime on V8
- npm package manager and registry access
- Standard library for HTTP, file system, streams and crypto
- Worker threads and child processes for parallelism
- Built-in test runner and watch mode
- Native TypeScript type stripping in recent releases
- LTS release lines with long maintenance windows
Typical workflows
- Serve an API or server-rendered web app behind a reverse proxy
- Run JavaScript build tooling (bundlers, linters, tests)
- Write cross-platform CLI utilities distributed via npm
- Keep services alive with PM2 or containers
Strengths
- Largest package ecosystem via npm
- Same language on client and server
- Predictable LTS schedule
- Permissive MIT license
Limitations
- Single-threaded event loop; CPU-bound work needs workers
- Large dependency trees require auditing
- ESM/CommonJS interoperability friction persists
- Version drift across machines without a version manager
Prerequisites
- Installer from nodejs.org, a version manager (nvm, fnm, Volta) or Homebrew
Who it is for
- Web and API developers
- Front-end engineers running build tooling
- DevOps teams deploying JavaScript services
Alternatives & comparison
Bun and Deno are newer JavaScript runtimes that bundle a package manager, test runner and TypeScript execution; both aim at Node compatibility, but Node remains the runtime most packages are tested against. Python is the usual alternative for data-heavy back ends, and Go for services where a static binary and built-in concurrency matter more than sharing code with a browser front end.
- Bun
All-in-one JavaScript and TypeScript runtime, package manager, bundler and test runner built on JavaScriptCore by Oven
Open sourceOpen source - Deno
Secure-by-default JavaScript and TypeScript runtime from Deno Land with web-standard APIs, built-in tooling and an optional hosted Deploy service
Open sourceOpen source - Go
Statically typed, garbage-collected language from Google that compiles to single binaries and is widely used for servers, CLIs and infrastructure tooling
Open sourceOpen source - Python
General-purpose, dynamically typed programming language with a large standard library and the dominant ecosystem for data science and machine learning
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licensehttps://github.com/nodejs/node/blob/main/LICENSEchecked Nov 1, 2026
Supports: license_spdx, source_model
- Official documentationchecked Nov 1, 2026
- Official sitechecked Nov 1, 2026
- Release noteschecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Broken · Nov 2, 2026
Spotted an error?
More in Programming languages & runtimes
Homebrew
Homebrew maintainers · macOS system utilities
Community-maintained package manager for macOS and Linux that installs command-line tools (formulae) and desktop apps (casks) from the terminal
Swift
Apple Inc. · Swift & SwiftUI development
Apple's compiled, memory-safe, multi-paradigm language for Apple platforms, Linux, Windows and embedded targets, developed in the open at swift.org
TypeScript
Microsoft · Programming languages & runtimes
Statically typed superset of JavaScript from Microsoft that compiles to plain JavaScript and powers editor tooling across the web ecosystem
Lean
Lean FRO · Mathematical & statistical computing
Open-source functional programming language and interactive theorem prover with dependent types, the Mathlib mathematics library and VS Code tooling, stewarded by the Lean FRO
uv
Astral · Programming languages & runtimes
Rust-based Python package and project manager from Astral that replaces pip, venv, pip-tools and pyenv with one command-line tool
Rust
Rust Foundation / Rust Project · Programming languages & runtimes
Compiled systems programming language with ownership-based memory safety, the Cargo build tool and no garbage collector