Skip to content

Contributing to Open Source

A person enjoying fresh air

I can't say that I've built any single production app for a client or myself without the use of open source packages. These are a phenomenal part of web development that allow me to save time and effort. Think about it though. Who build these and why... and what do they get out of it? I must admit, I had absolutely no answer to these questions initially but when I got them, it gave me a new perspective to development.

First off, what is open source? In the context of development, it basically means making a product's code available to everyone for free.

But why? It does not make sense to work on a product for weeks, months or even years, just to give it up for free, right? It does not seem economically viable and in most cases it is not. From what I understand, the purpose of open source is to allow several collaborators who share a passion for solving the same problem, to work together in that direction. You might be thinking that it's still not making a ton of sense since you're not getting paid for your time and it's not like you don't have anything better to do.

Let me ask you a question. Can you imagine building everything, literally everything, from scratch? I personally don't have the time, the energy or the expertise. I'm thinking about every single open source library I've ever used, for internationalization, animation, and what not. Ok, so that's why you need open source packages, and it's pretty obvious. Large organizations earning billions use open source packages. Wanna guess why? Yes, it's free. A lot of times, these organizations don't pay it forward, in terms of sponsorships or contribution. They should but not all of them do.

Contributing to a package ensures it's continued existence and allows it to be better as you're bringing your expertise to the table. No maintainers means the package is no more maintained. Sure, it's not always guaranteed to pay off but the objective of contribution shouldn't be remuneration unless you want to be disappointed. You use a package and want to keep doing so? Find a way to contribute; talk about it, write about it, do branding work, write documentation, help organize events related to the project, answer questions in the community, donate a percentage of your income, create lessons/courses, create pull requests with interesting features or bug fixes. You could also think about it as improving your skills as working on an open source project contributes to your portfolio, hence your career, and also helps in terms of exposure in the community. If everyone supports this contribution culture, everyone wins.

If you want to get an in-depth understanding of open source, check out this awesome website I found.