How to make your first open-source contribution?
There are many ways you can contribute to open source and it doesn't have to be exclusive to code.
You can contribute by
- Writing code
- Reporting bugs
- Reviewing pull requests
- Helping triage an issue
- Adding/Improving documentation
Find a project to contribute to
If you are working on a project, check out the Github repositories of the libraries you are using.
For example, if you are working on a frontend project, you can check out react-starter, Bootstrap, Tailwindcss projects.
This is a sample of dependencies from package.json
. Most of these are open-source.
Identifying the right thing to contribute to
Identify the type of contribution you want to make. The best place is, to look at the project's issue board. Most of the projects have labels for the issues.
Look for these labels "good first issue", "beginner", "documentation"
Label type | Example |
---|---|
good first issue |
|
beginner |
|
documentation/doc |
Writing code
You can either fix an issue or implement a new feature. Add a test case if possible and appropriate documentation depending on the project.
Here is a PR that I created https://github.com/visionmedia/node-progress/pull/128/files.
Reporting a bug
If you have come across a bug in any of the libraries you are using, create a new issue. Provide details like steps to reproduce, version of the library you are using, browser version, OS, etc.
If a project has an issue template, follow that.
Requesting a feature
You can request a feature in a library by opening an issue.
Here is one such feature request that I had raised.
Reviewing pull requests
Don't rush into reviewing pull requests. Judge the tone of the project by reviewing past pull requests.
Be humble with your feedback and don't assume authority unless you are a frequent contributor to the project.
Triage an issue
Open source projects have a lot of issues and maintainers do not usually have time to check each one of them. It would be of great help if you can help them triage an open issue.
Adding/Improving documentation
Look for issues with the label "Documentation". You can improve existing documentation, either by updating the content or by adding more examples.
If you find a README that is unclear, create an issue and offer your help to improve it.
Project templates & coding guidelines
When you are contributing to a project, follow the coding practices of that project. Maintainers will be very particular about this and your PR won't be accepted.
If you are reporting a bug, make sure to follow the issue template.
For example, check out this contributing guide from the docker/compose project https://github.com/docker/compose/blob/master/CONTRIBUTING.md
Patience
Remember, it is an open-source project. So don't expect your PR to be merged immediately. Wait for at least a week before you comment and ask for feedback.
Communication
Once you have decided to address an issue, make sure to communicate by commenting on the issue that you want to work on it. This makes sure that no one else works on it and saves time for everyone.
You can also create a work in progress PR and ask for feedback
Sites to help you find beginner-friendly or easy issues
- https://github.com/topics/good-first-issue
- https://github.com/MunGell/awesome-for-beginners
- https://goodfirstissue.dev/
- https://up-for-grabs.net/
- https://firstcontributions.github.io/
Dealing with feedback
You might not like some feedback, it's ok. It happens to all of us. Don't take it personally. Be patient and understand that the maintainer might not be getting paid for their work.
Imposter syndrome
Your first PR might be intimidating. Don't let that get in your way. Take this PR as an inspiration https://github.com/playframework/playframework/pull/616
This was Kent C. Dodds's first contribution which fixes a typo.
Now he is a pro contributor and he has done numerous contributions.
Top comments (2)
Thank yuo Dinesh, all new for me!
Welcome Alessandro.