2.2 KiB
Technical values and priorities
The project uses these technical values to establish priorities and guide collaboration.
Values and priority level
- 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
Value descriptions
1 - Developer experience
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
2 - Stability
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
3 - Operational qualities
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
4 - Node.js maintainer experience
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
5 - Up to date Technology and APIs
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