Skip to main content

Welcome Contributors

Contributions to Node.js include code, documentation, answering user questions, running the project’s infrastructure, and advocating for all types of Node.js users. The Node.js project welcomes all contributions from anyone willing to work in good faith with other contributors and the community. No contribution is too small and all contributions are valued.

Open Governance Model

The Node.js project has an open governance model. Individuals making significant and valuable contributions are made Collaborators and given commit-access to the project. See the GOVERNANCE.md document for more information about how this works.

Ways to Contribute

There are many ways to contribute to Node.js:

Code Contributions

  • Submit bug fixes
  • Add new features
  • Improve performance
  • Enhance existing functionality

Documentation

  • Improve API documentation
  • Write tutorials and guides
  • Fix typos and clarify explanations
  • Translate documentation

Community Support

  • Answer questions in the issue tracker
  • Help users in community forums
  • Participate in discussions
  • Mentor new contributors

Infrastructure

  • Maintain build systems
  • Improve CI/CD pipelines
  • Support testing infrastructure

Getting Started

To start contributing:
  1. Familiarize yourself with the project
  2. Find an issue to work on
    • Look for issues labeled good first issue
    • Check the issue tracker
    • Ask for help in discussions
  3. Set up your development environment
    • Fork the repository on GitHub
    • Clone your fork locally
    • Install dependencies
    • Build Node.js from source
  4. Make your changes
    • Create a new branch for your work
    • Write tests for your changes
    • Follow the code style guidelines
    • Run linters and tests
  5. Submit your contribution
    • See Pull Requests for the detailed process
    • Open a pull request
    • Respond to code review feedback
    • Wait for approval and merge

Developer’s Certificate of Origin

By making a contribution to this project, you certify that:
  • (a) The contribution was created in whole or in part by you and you have the right to submit it under the open source license indicated in the file; or
  • (b) The contribution is based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, under the same open source license (unless you are permitted to submit under a different license), as indicated in the file; or
  • (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
  • (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

Community Resources

Communication Channels

Getting Help

Next Steps

Report Issues

Learn how to submit bug reports and feature requests

Submit Pull Requests

Understand the pull request process and guidelines

Code of Conduct

Review our community guidelines and expectations

Collaborator Guide

Information for project collaborators