How I Learned About Contributing to Open Source Projects By Creating One

This article was mentioned on Digital Ocean's Hacktoberfest Recap.

Every beginner, whether to programming or to Open Source Projects, can agree that your first contribution is very scary. Not only do you not know how it works, but also you're scared of what response you will get when you send that first PR.

A lot of projects on GitHub aim to make first time contributors less scared of this. For example, the repository First Contributions aim to help you make that first contribution you are so scared of by making a simple change to the repository and guiding you in details on how to submit the PR. This is great and really helpful, but when you go to make a contribution to a repository that requires more real work, you still find it a little hard to contribute to it.

I personally had a trouble with it. I'm not a beginner developer, but I am a beginner to Open Source and trying those "repositories for first timers" were helpful in taking that first step, but I still found it difficult to contribute to bigger repositories. This was a hindrance for me as I really wanted to be a part of the Open Source community and collaborating with other contributors.

Then one day, I decided to create a repository that was so simple. The idea was just creating a library of pure CSS buttons that can be used in any website. I admit it's not an innovative idea, but it was a way to help me start with open source projects. The repository I created is sButtons.

The website in the beginning was very simple and had almost nothing. It just had at most 15 buttons, a minimalist sidebar, and a text for a logo. It didn't even have a header or a footer, and the buttons were not that special, to be frank.

Then I started posting issues to get help on making the library and the website that showcases it better. I posted issues about adding new buttons, improving the design and look and feel of the sidebar and navigation bar, adding a header and a footer, and even creating a logo, among other issues. At first I expected no one to care, as it was a small repository and maybe not that interesting, but I was overwhelmed by the comments and helps I received! People wanted to contribute to this open source project even though it had nothing in it.

Since I am a beginner to open source, I decided that this repository would mainly be focused on other beginner contributors. The main values to this repository would be:

  1. Try to always add simple issues that any beginner can take, and make sure no one other than beginners work on it.
  2. When reviewing PRs or replying to other, make sure to never make beginners feel bad for their questions. Guide them through everything in steps, and be patient.
  3. Be welcoming of everyone.

And the number of contributors grew to maybe 60 which was a big deal to me! And then Hacktoberfest started, and for those of you who don't know, it's an annual event for developers that encourage contributing to open source projects by offering swag as a prize for your contributions. Developers all around the world participate and it is a big event for everyone.

I've never been a maintainer through Hacktoberfest. This was my first time, and as October started (which is the month Hacktoberfest happens in), I was overwhelmed by the contributors that wanted to contribute to the repository to participate in Hacktoberfest. I got into a point where I couldn't keep up with all the notifications, the issues and comments and PRs, so I created an organization, transferred the repository to it and added amazing members that still help massively in responding and reviewing and guiding beginner contributors. Without these members, my repository would still be in stage one.

Long story short, now (at the time of posting this) the repository has 113 stars and 420 forks, 180 contributors, an NPM package, and an awesome new renovated website.

We still have a long way to go, but I am very proud of what we have accomplished as we are all beginners and we are aspiring to help other beginners.

Through creating this project and repository, it helped me learn more about contributing to open source and collaborating with developers all over the world. Through helping others it helped me learn new things, and I think that's the beauty and purpose of open source projects. Helping and being part of the community.

The beauty and purpose of open source projects is helping and being part of the community.

If you are new to open source projects as well or you would like to be a contributor to our repository, we have many issues waiting for you! Please check them out and start contributing here!

In the end, I would like to mention all the members of the organization who have been a great help for me and who have taught me many things as well. They are (in no particular order):

  1. Gleb Kemarsky
  2. Sonny Michael
  3. Chaitanya Chaturvedi
  4. Seven
  5. Aditya Vats
  6. Snehasish Dhar
  8. Tom Wang

Thank you all and thank you to every contributors that contributed to our project!