Skip to content

Latest commit

 

History

History
64 lines (55 loc) · 2.38 KB

technical-values.md

File metadata and controls

64 lines (55 loc) · 2.38 KB

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
  • Compatibility and interoperability with browsers and other JavaScript environments so that as much code as possible runs as is both in Node.js and in the other environments
  • 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