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:-
Familiarize yourself with the project
- Read the Code of Conduct
- Review the GOVERNANCE.md document
- Explore the codebase
-
Find an issue to work on
- Look for issues labeled
good first issue - Check the issue tracker
- Ask for help in discussions
- Look for issues labeled
-
Set up your development environment
- Fork the repository on GitHub
- Clone your fork locally
- Install dependencies
- Build Node.js from source
-
Make your changes
- Create a new branch for your work
- Write tests for your changes
- Follow the code style guidelines
- Run linters and tests
-
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
-
OpenJS Foundation Slack
- #nodejs - General help and discussions
- #nodejs-core - Core development
- Join Slack
- IRC: #Node.js on Libera.Chat
Getting Help
- For general help: Node.js help repository
- For technical discussions: GitHub Discussions
- For non-technical topics: TSC repository
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