The project uses these technical values to establish priorities and guide collaboration.
- Priority 1 - Developer experience
- Priority 2 - Stability
- Priority 3 - Operational qualities
- Priority 4 - Node.js maintainer experience
- Priority 5 - Up to date Technology and APIs
We value ensuring that developers are productive and enjoy developing with Node.js. Some key elements of this include:
- Approachability (both technical and community)
- Great documentation
- Bundling friction-reducing APIs and components, even though they could be provided externally
- Enabling/supporting external packages to ensure overall developer experience
Whenever possible, we seek to ensure that working code continues to work. To keep the trust of developers and users, we value stability. Some key elements of this include:
- Backward compatibility
- Stable releases on a predictable schedule
- A strong safety net, including testing how changes in Node.js affect popular packages
- Careful consideration of what goes into long term support (LTS) releases
We value keeping Node.js safe, performant, and lightweight. We value enabling the ability to investigate and debug problems in development and production. Some key elements of this include:
- High throughput (speed)
- Fast startup
- Small binary size
- Small memory footprint
- High-quality debugging tools
- Robust diagnostic tools (profilers, etc.)
- Responsible security practices
We value the productivity and happiness of the Node.js maintainers. Some key elements of this include:
- Approachability of the codebase
- Good internal documentation and guides
- Low-friction policies and processes
- Good CI and tooling to make maintainers productive
We value providing developers with modern APIs and technologies following existing standards whenever possible. Some key elements of this include:
- Participating in standards work and organizations
- Web API compatibility
- Supporting and exposing new technologies and standards through early adoption