A guide on how to make your first contributions to Open Source

Photo by Richy Great on Unsplash

A guide on how to make your first contributions to Open Source



As many of you know, the month of October is well-known for an event popular with the developer community. Hacktoberfest. It is an initiative by Digital Ocean (and other companies) to promote the spirit of Open Source by encouraging developers to contribute to Open Source. And you get some swags as a reward. Though it has its drawbacks, the goal, in my opinion, is noble. And you should contribute to Open Source. You get to learn a lot and the community around Open Source is awesome!

So, this year, I participated in Hacktoberfest for the first time, and I learnt some pretty important and share-worthy things.

Tips on Open-Source contributions

  • You can contribute even without coding

This year, especially, Hacktoberfest encouraged low-code and no-code contributions. This includes writing technical documentation, improving and translating existing documentation, testing, user experience design, graphic design, talks or presentations, technical blogs, social media posts, etc. You can learn more about this here. So, the bottom line is that if you want to improve an open-source software, you do not necessarily have to write code. You can contribute in other ways. In fact, most of my contributions were low/no-code contributions.

  • Always look for existing issues on the repository

If you look at the Issues tab of a GitHub repository, you can find issues filed by the maintainer or someone else. These are usually bugs or some other issue in the code. See if you can fix any of them. Often, issues will be tagged as good-first-issue or first-timers-only. These are good for newcomers or those who are new to the codebase. Comment on the issue to ask if you can work on it. Start working on the fix after a maintainer assigns it to you. Remember to give the maintainers some time to look at your comment. They may be living in different time zones and may have other responsibilities. Be kind and respectful.

  • Filing your own issues

If you use some Open-Source software and you find some bug or maybe some accessibility issues in it, you can file an issue. Describe the issue in a clear manner with instructions on how to reproduce the issue, if possible. Many repos will have an Issue Template. Fill it up properly. If you think you can actually fix that issue, you can ask the maintainer to assign it to you.

  • Opening a Pull Request

I will not be going over how to fork a repository, and work on your own branch, etc. You can learn all about that by googling a little. But after you are done making changes, and pushed those changes to GitHub, you can open a Pull Request to the original repo. Basically, a Pull Request (PR) is a request to the maintainer to pull your changes into their codebase. You will most probably see a PR template as well. Fill it up with all the required information, especially the Issue which this PR fixes. Again, do not message/tag the maintainer(s) on other platforms, asking them to merge your PR.

Note: Do not open spam Pull Requests adding random things to any file. PRs must add value to the codebase.

  • Collaboration is Key

Communicate with the maintainer if in doubt about something. If you cannot understand what the Issue actually is, ask the maintainer. If the maintainer asks you to fix something in your PR, always talk to them and try to understand what needs to be done. Also, check back on your PR regularly. Most often, there are certain workflows running when a PR is opened, some of which may fail for some reason, and you may need to fix something in your PR to pass those workflows. Always work with the maintainer if you cannot figure something out.

  • Learn something new

If you are completely new to programming, you may feel overwhelmed by certain Issues. You can always contribute to low-code or non-code issues. (I could not complete Hacktoberfest last year due to this very problem). But as you become more experienced, you will definitely start feeling more comfortable getting your hands dirty with some new technology. For example, I learnt about Astro which is a web framework (astro.build) and Appwrite, a platform which lets you build a backend for your application easily (appwrite.io) this year during Hacktoberfest. I even contributed to a repo by building a simple Astro website. Remember Open Source is a great way to learn new technology because everything down to the source code is right there in front of you.

  • Don't stop

Open Source is not just about Hacktoberfest, or about winning a T-shirt. Its about collaboration and making better software. Do not stop contributing after Hacktoberfest ends, you have your whole life to contribute to Open Source.

That is it from me for today. Till next time keep supporting Open Source.