Hey Everyone! Long time.👋🏻
It's been a long since I wrote something on my personal blog. So if I am resuming it, I will do it in style.
There is a gift for you in this article of mine. By the end of this article, you will make your First Open Source contribution. ✨
Before we start with the question - How to make your first contribution to Open Source?
We should first understand what Open Source Development is. Anyone who is reading the word Open Source Development for the first time, let me define it for you (because you will encounter this word A LOT in this article).
I couldn't find a bigger font to write this, so you understand the importance of this point is.
While finding an Open Source project, consider your interests as the foremost thing. Your interest may or may not relate to your day job. It should be something you are really passionate about. It can be anything - Food Softwares, Design tools, Music Softwares, anything that you genuinely appreciate.
Open-source contributions won't feel like "work" if you take care of this point.
Fill out this sentence before you jump to the actual contributions:
I can help you with ____________ .
You do not necessarily need to contribute to an Open Source Project with code only. Open Source Development and Contributions goes way beyond code too.
You can help the Open Source project and org with -
- Social Media Writing
- Project Management
- Code Reviews
- Organizing Meetups and Events
And the list doesn't end here. You can find your own unique way of helping an Open Source Project.
There are numerous ways of finding an Open Source Org. Open Source programs like GSoC, GSoD, Hacktoberfest, Linux foundation, etc., act instrumental in this process and make it easier for people to find Open Source orgs. But you don't need to limit yourself till there. Simple searches over the internet can help you find the Open Source Org that inclines with your interests.
There will be hundreds of words that you don't know the meaning of. So it's essential to understand what you are getting into.
There are three best friends you have for this 👇🏻
But when you go through the codebase, documentation, and community. There will be some common Jargons that you will come across. Let's try to demystify some common Jargons for you -
- Issues - Issues is a tracking tool that is integrated with the development repository. And as the name suggests, if someone encounters an issue in the project, they can list it using the Issues section.
- Mailing List - Open Source orgs generally use mailing lists as Virtual Committees to talk to their community and contributors.
- Pull Requests - This is a very vital part of Open Source Development. A pull request is a method of submitting contributions to an open development project. A pull request occurs when you ask for changes committed to an external repository to be considered for inclusion in a project's main repository.
- Contributing - These are the guidelines you need to follow if you want to contribute.
- ReadMe - This carries all the general information about the project, like how to set it up locally, what the project is about, etc.
- Community - This comprises the group of people who are using the project or simply interested in it.
- Contributor - Anyone whose Pull request is merged in the main project is considered as a Code Contributor (but as we discussed above, there are others ways of contributing as well).
- Chat Channels - Mode of communication where you can discuss your queries about contributing to the project. These are Gitter, IRC, or Slack channels generally.
- **Maintainer - **This can be one or more people who build source code into a binary package for distribution, commit patches, or organize code in a source repository.
The fifth step is simple - You have to stop overthinking that you are competent enough or not for making an Open Source Contribution.
There will definitely something that you can help with, as long as you are open-minded and willing to explore and learn new stuff.
As I promised to you, by the end of this article, you will make your First Open Source contribution. So let's begin with it 🌟
We will take help of our above checklist -
Does Hashnode Interest you?
If yes, then voila!
✅ Step 1 is done.
We have Hashnode Support Docs Open Sourced for you so that you can contribute to it.
There are different ways you can contribute to Hashnode Support Docs. Whatever way you choose is totally up to your interest.
✅ Some 0th level contributions can be:
- Sharing about the Open Source Project (in this case, the Hashnode Support Docs) on the Social Media Channels so that more people can discover it.
- Sharing the Hashnode Support Docs with anyone who has some queries that can be resolved using the docs.
✅ Some minor contributions can be:
- If you see some bug or want to suggest some optimization in the Hashnode Support Docs, then Opening an Issue for the same.
- Finding and reporting Typos in the Docs.
- You can help people understand the Contribution guidelines of the project.
✅ Some major contributions can be:
- You can contribute guides about any section of Hashnode that can be helpful to Hashnode Users.
- You can contribute to Hashnode Support Docs by adding some new features to the site.
- You can improve the existing documentation by rephrasing it.
- You can do code reviews if you see someone opening a PR and making a code contribution.
Step 3 is already covered, so jumping to Step 4.
Once you decide how you want to contribute to the project, it's time to go through the Documentation, Codebase, and Community.
- Hashnode's Support Docs' Codebase here. You can fork this project.
- The documentation you must go through is the README.md and CONTRIBUTING.md of the project.
- The community is here and we have a discord server where you can ask your queries.
And once you make your first contribution, remember to keep the loop of contribution and communication alive. By doing this, you will be able to inspire more people to contribute and make the world of Open Source a long-term thing for you.
Lastly, I want to mention, once you make your contribution, it's essential to have patience. Your contributions will be acknowledged definitely and positively. But like every good thing it takes a little time. 🌟
I can't wait to see your contributions rolling!
Feel free to comment here if you have any follow-up questions 😊