How I Learned About Contributing to Open Source Projects By Creating One
Tags: devjournal, opensource, tips, less
Published: 2021-02-09 09:12:32

_This article was originally posted on [my personal blog](https://blog.shahednasser.com/how-i-learned-about-contributing-to-open-source-projects-by-creating-one/)_

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](https://github.com/firstcontributions/first-contributions) aims 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 trouble with it. I'm not a beginner developer, but I am a beginner to Open Source, and trying those "repositories for first-timers" was 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 to create a library of pure CSS buttons that can be used on 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.

![sButtons early stages](https://dev-to-uploads.s3.amazonaws.com/i/ppaxw74yp2jigyjoum79.gif)

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](https://hacktoberfest.digitalocean.com/) 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 176 stars and 445 forks, 204 [contributors](https://github.com/sButtons/sbuttons/blob/master/CONTRIBUTORS.md), an [NPM package](https://www.npmjs.com/package/sbuttons), and [an awesome new renovated website](https://sbuttons.github.io/sbuttons/).

![sButtons new website](https://dev-to-uploads.s3.amazonaws.com/i/yw7komrqpakz1epqkaok.png)

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 are helping and being part of the community.

Thank you to every contributor that contributed to sButtons and made it happen! It wouldn't be the way it is now without you. I hope we can continue to help beginners grow and learn how to contribute to open source.