Contributing to Open Source Software, The Right Way
Tags: opensource, github, git, beginners
Published: 2024-03-07 05:50:14

## **DISCLAIMER**

I don't want anyone to try or attempt to berate or just cancel anyone, I just want to share my way of contributing to open-source

## Open Source is cool

I still think open source software is cool, well not just software, hardware also since I do electronics and 3d printing I saw the rise of Reprap and Arduino and how it blew up the development of respective fields.

We as a society benefit from open source where people from everywhere contribute to the technology that we use every day, Linux, Chromium, or any tech is at some point using this awesome tech.

## The concern

There is a concern or a debate about whether you should contribute to open source or not, some of the amazing talk comes from Theo over t3.gg and ThePrimeAgen, amazing people, The videos are these, go check them out one by one.

[Don't Contribute to Open Source](https://www.youtube.com/watch?v=5nY_cy8zcO4&t=450s)
[Do NOT contribute to open source | Prime Reacts](https://www.youtube.com/watch?v=fXqX2S6s3rU&pp=ygUYdGhlcHJpbWVhZ2VuIG9wZW4gc291cmNl)
[I screwed up](https://www.youtube.com/watch?v=o2CSJYXJBpc&t=1srl)

The WTF point in my opinion is where I saw this tweet, and I saw the YouTube vid itself, and I saw the state of the Express.js PR section right now, it's crazy

{% embed https://twitter.com/Eshan_Sharma__/status/1754891381561016640 %}

Lucky they don't spam PR on Linux kernel, Torvalds will insult you, your brain, your parent, your neighbor, and your 5th grade teacher in span of 100 characters.

> Fun question for my Indian readers rn, why when you guys make a YouTube video it has an English description, has English title, an English thumbnail, and then the voice in the video....not english lmao, i was bamboozled hard on that everytime, okay back to topic.

## Do I Even Contribute to Open Source

I do in fact contribute small stuff which is not huge but it was helpful enough that the repo owner actually merged it to the existing project, and not in big projects hell no my brain isn't huge enough for that, but just stuff that I use or used.

### nvim-platformio.lua

An amazing tool I found to help me write embedded electronic firmware in Nvim and Platformio, I like it but the first time I saw it the config for installing it with lazy.nvim isn't there because Anurag the repo owner uses Packer, so I add small contribution on using Lazy, small but I think Anurag appreciate it enough to merge it with master repo.

{% embed https://github.com/anurag3301/nvim-platformio.lua/pull/1 %}

### Discipline Mechanical Keyboard

I don't contribution have to be only PR, Issues can be helpful enough for the community if you do it correctly

This issue I wrote on Discipline Keyboard's repo because the website is gone, and the guide is saved there, but then I got it from the Wayback Machine, so I added the link there, and it is helpful enough to others add PR to move it there

{% embed https://github.com/coseyfannitutti/discipline/issues/72  %}

### Gobrew

This is a tool for versioning Go versions, I don't use it anymore to be honest but back then I add a small contribution in the shell completion because it don't have 'self-update'

{% embed https://github.com/kevincobain2000/gobrew/pull/112 %}

## Small right?

see it's small, and it's not some big project thousands of people use but it's useful enough for people.

## The wrong mentality

![Wrong Mentality](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ptouv6kkjf2dt80braun.png)

This is in my opinion, the wrong mentality for contributing to open source projects, I don't think you should contribute to open source projects because you want to contribute, or as the OP of the post said `when you open source your debugging skills improve and everything like networking which can be good for referrals, attract interviewee when they see you made a contribution in open source, and scope of learning is high` which you can do that by making your own open source project instead of contributing to someone else's which is different stuff.

When you contribute to someone else's project, the maintainer expects a good PR, something that can be helpful for other dozens, hundreds, or thousands of people who use it also, because if the PR breaks the project it will affect those people or at the very least waste the maintainer's time to check if the PR is useful or just spam.

## My approach is contributing

My approach to doing open source contribution is bit simple it's just a best practice for me not just in Open Source project but also helping others IRL.

1. First I have to use it also, well ofc right? this step is simple but usually overlooked by others on the Internet, why help if you don't understand what you want to help with? you will just hinder it. You need to use it, not just use it because you want to see the flaw, but because you like the tool, and you have something in your mind that can be improved.

2. If you understand the tech stack behind it, and if you can add your improvement there, do it. if not add issues in the repo, but make sure the problem hasn't been issued already, so do search for a bit, and see if the problem is noticed or not.

3. Know how git works, how to make a fork, how to make a branch, how to push PR properly.

4. If your PR isn't accepted, don't be sad, maybe there is a better solution, or just simply there's something happened. If you still don't like your solution rejected just fork it, push it to your own, the develop it from there.

## Conclusion

I hope it can help others, on how I approach on contributing to open source projects, I feel sorry for express.js dev on dealing with such spam and I hope it doesn't happen to other projects

If you like my writing maybe like it, or comment, if you don't maybe comment also so I can see what can i improve from this writing.

or if you like this very much you can support me so I can make another writing like this.

{% embed https://www.buymeacoffee.com/dhupee %}