- Ways to contribute
- Finding an issue
- Asking for help
- Pull request process
- Setting up the development environment
- Signing commits
Welcome 👋 Thank you for your interest in contributing to MDN Web Docs. We are happy to have you join us! 💖
As you get started, you are in the best position to give us feedback on project areas we might have forgotten about or assumed to work well. These include, but are not limited to:
- Problems found while setting up a new developer environment
- Gaps in our documentation
- Bugs in our automation scripts
If anything doesn't make sense or work as expected, please open an issue and let us know!
This project requires Node.js to be installed on your local machine. Additionally, you should have git and GitHub access.
The first step in setting up your development environment is to fork the repository and clone the repository to your local machine.
To get started, make sure you have the following:
- NVM or NVM for Windows
- Nodejs (Latest stable release or up to two versions back)
- Yarn
Once you have the above installed and have the repository cloned, it is time to install the project dependencies.
In the project directory, you can run the following command which runs the app in the development mode. Open http://localhost:3000 to view it in the browser. The page will reload if you make edits. You will also see any lint errors in the console.
yarn start
Launches the test runner in the interactive watch mode. See the section about running tests for more information.
yarn test
The following command builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
yarn build
The build is minified and the filenames include the hashes. Your app is ready to be deployed!
See the section about deployment for more information.
Note: this is a one-way operation. Once you eject
, you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject
at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject
will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
yarn eject
You don’t have to ever use eject
. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
We welcome many different types of contributions including:
- New features and content suggestions.
- Identifying and filing issues.
- Providing feedback on existing issues.
- Engaging with the community and answering questions.
- Contributing documentation or code.
- Promoting the project in personal circles and social media.
We have issues labeled good first issue
for new contributors and help wanted
suitable for any contributor.
Good first issues have extra information to help you make your first contribution a success.
Help wanted issues are ideal when you feel a bit more comfortable with the project details.
Sometimes there won't be any issues with these labels, but there is likely still something for you to work on. If you want to contribute but don't know where to start or can't find a suitable issue, speak to us on Matrix, and we will be happy to help.
Once you find an issue you'd like to work on, please post a comment saying you want to work on it.
Something like "I want to work on this" is fine.
Also, mention the community team using the @mdn/mdn-community-engagement
handle to ensure someone will get back to you.
The best way to reach us with a question when contributing is to use the following channels in the following order of precedence:
- Start a discussion
- Ask your question or highlight your discussion on Matrix.
- File an issue and tag the community team using the
@mdn/mdn-community-engagement
handle.
The MDN Web Docs project has a well-defined pull request process which is documented in the Pull request guidelines. Make sure you read and understand this process before you start working on a pull request.
We require all commits to be signed to verify the author's identity. GitHub has a detailed guide on setting up signed commits. If you get stuck, please ask for help.