I tried contributing to open source and I liked it
I’m a Front-End Engineering student at Turing School and we were given the task of contributing to an open source project.

Why contribute to open source projects?
- It’s fun
- It’s good practical experience
- Learn new skills
- Learn new technologies
- Learn new ways of structuring code that makes it easier for other people to read
- You use open source software, why not give back
Finding an open source project
Github makes it pretty easy to find open source projects. All you need to do click your badge and then click on Explore. Once you are on the Explore Github page you are given different categories to look from and if you click the trending link you’ll be shown a list of the trending repos. From here you’re able to sort and filter the repos by language. For me, the repo I worked with was Swagger UI. Swagger UI is a really cool tool that makes API documentation really easy to read and understand while also making it easy for a developer to test the API in the browser. This project was predominantly React and Redux.
Choose your destiny
Now that you’ve found a project to work on it’s time to find your first issue to claim as your own. A lot of repos will use the labels. This is especially good for helping you navigate through what could potentially be hundreds of issues. As a first time contributor try looking for labels like, ‘Good first contribution, or ‘Good for beginners’. A quick warning, these labels do not mean the issue will be easy to resolve they are simply a way to make sure you’re not diving directly into the deep end. There is no need to rush this process of picking an issue, take your time and read the comments and see what other people have done. At the end of the day the issue you pick should not be owned by someone else and something you feel is doable. This was the issue my group chose to work on

Making contact
Now that you’ve found the issue that is right for you it’s time to start communicating with the maintainers and since this is an open source project your communication needs to be clear and concise. A potential opener could be
Hi there! I’m a first-time contributor and was hoping to help out with this issue. I noticed nobody was assigned to it, but if there’s already a solution in progress I’m happy to try helping out elsewhere. Thanks!
Though I wish I could take credit for writing this wonderful introduction, the real wordsmith here is Brittany Storoz. Asking questions is a big part of contributing to open source projects. When you don’t understand how things work, ask questions. The last thing you want to do is create a PR only for the maintainers to tell you that what you ‘fixed’ is not actually what the issue described.
Jumping into a foreign codebase
This is the exciting and challenging part. Looking at code that is not yours and trying to understand is hard. Simply looking at the folder structure and trying to understand what is going on felt overwhelming. It’s at this time where you should ask some clarifying questions.


We spent two full days just throwing in console logs everywhere trying to understand the flow of data. It’s okay to take your time and look through the code to figure out how things work. I would suggest looking at the tests as well. You can gain a lot of good knowledge about the application from looking at tests and seeing what is being tested.
Resolving the issue
Once you feel as though you have resolved the issue it’s time to create a PR and let the maintainers review your fix. When creating a PR, again, it’s important to be very clear about what changes you made and why you made them. Somethings you might include in the PR:
- What does this PR do
- Where should the reviewer start (filenames, line numbers, etc)
- A screenshot if you made a UI change
Now prepare to wait. There is a good chance that you’re PR won’t be merged immediately.
If you feel like you are in over your head and don’t think you can resolve the issue, that is absolutely, 100% fine. Just make sure you notify the maintainers and remove yourself from the issue. Remember, the goal of this is not to stress yourself out, but to contribute.
