5 Tips for Getting Started with Open Source Development
Contributing to open source can be an enjoyable and fulfilling way to spend your time. However, if you've not contributed before it can be daunting - in this article I am going to cover some things that did help or would have helped me get over that initial hurdle.
You probably already have an idea in mind about what project(s) you would like to contribute to. If not, think about what libraries, frameworks, applications, etc you use frequently and excite you.
One problem I had before I started contributing properly to open source was I was only really keeping an eye on the issues for huge projects I was interested in such as React.
Whilst it is possible to jump straight in on a large project I would not personally recommend it. At the time of writing, React has 654 open issues, 234 open pull requests and 1,341 contributors. Contributing to such a large project early doors could prove to be an overwhelming experience.
Instead, find a smaller scale project that you find interesting so you can get your feet off the ground.
For me, because I do a lot of work with React and have an interest in accessible technology, I decided to contribute to Reach UI. At the time of writing, Reach UI currently has 46 open issues and 11 open pull requests, so enough issues/pull requests to get involved, but not so many you feel overwhelmed by it.
Whatever project you choose, a great starting point is to check out whether they have any labels set up for people who are new to the project. Typically the label is called something along the lines of 'good first issue' or 'beginner friendly'.
Contributing is more than just code.
There are a whole host of ways you can contribute to projects.
- Contribute code by fixing a bug or adding a requested feature.
- Improve documentation by fixing mistakes, increasing clarity and providing examples.
- Help by reporting issues you've experienced.
- Provide an additional set of eyes on pull requests by leaving a review.
- Increase the project's test coverage.
- Help maintain or provide TypeScript types.
- Many more!
As you can see from the above, there are a lot of ways to get involved in a project and every contribution you can make is valuable. Don't worry about opening up a small pull request with a few documentation adjustments for example, maintainers are usually very grateful and the readers of that documentation will be too!
Follow contribution guidelines.
Most open source libraries contain a
CONTRIBUTING.md file in their repository. This file outlines how to go about contributing, things to take into consideration and, occasionally, rules to follow.
It is always worth your time to take a look through this documentation in advance and familiarise yourself with it.
It's best to be in the know from the very beginning.
Follow good contribution etiquette.
Open source work is, by its nature, highly collaborative and, as such, it's important to follow good etiquette and be as helpful as possible.
A lot of projects include a
CODE_OF_CONDUCT.md file which is always a good place to start. Familiarise yourself with this before making any changes. If the project you want to contribute to doesn't have one then just follow the age-old rule: treat others how you would want to be treated yourself.
As well as following any code of conduct you should also take the time required to fill in any issue or pull request templates set up by the maintainer(s) of the project. Your issue or pull request is likely to be addressed sooner if you provide all of the information requested.
Always be on the lookout.
Since I enjoy contributing to open source, I am always on the lookout for things to fix or changes to make. For example, if you're looking at a new library and notice that the documentation is missing an important example or contains a spelling/grammar mistake - go in and fix it, the maintainer will appreciate it!
Similarly, as you continue to use various frameworks and libraries in your projects - if you spot any improvements that could be made or issues that arise then go and report/fix them.
Contributing to open source is a very rewarding experience once you get over that initial hurdle of not know where to get started. Hopefully this article has given you some thought points and actionable steps to take.
Have any tips or ideas that I've missed out? I would love to hear them.