Why You Should Start Contributing to Open Source Software Right Now
Tags: javascript, webdev, beginners, opensource
Published: 2020-11-14 12:07:59

You might not be aware of it, but you use some form of open source software every single day.

Every time you start an app on your phone or launch a program on your computer, you profit from the code that someone has written for free.

WordPress, the largest and most well-known content management system, is used by [38% of all websites](https://w3techs.com/technologies/details/cm-wordpress) worldwide. It is open source and free to use.

Linux is powering [30% of all websites](https://w3techs.com/technologies/details/os-linux) globally. It is open source and free to use.

These are just two examples out of a myriad of projects which were created to solve a problem or serve a use case.

These projects became highly popular as communities formed around them. They tried to deliver the best product possible in terms of user experience, stability, security, and more.

But not only the usage of open source projects is rising. The participation in the open source movement as a whole is growing as well.

According to the [State of the Octoverse report](https://octoverse.github.com/) by GitHub, out of more than 40 million developers on GitHub, 10 million new users joined in 2019 alone!

The open source movement is growing quickly and you should become a part of it too.

Whenever I see a new update for my operating system or new software releases of tools that I actively use every day, it makes me smile. I enjoy the thought of products continuously getting better and more sophisticated.

Do you feel the same way?

Here is why I am convinced that you should start contributing to open source software right now.

## You can learn a lot from the source code

Since the source code in open source projects is available for anyone to read, that means that a large number of developers can battle-test and improve a project.

Developers point out privacy or security issues, update the documentation, and improve source code to the newest web development standards all the time.

Especially when you go through the code of projects with hundreds or even thousands of contributors, you can gain immense knowledge about best practices and code quality.

Not only is reviewing the code itself a learning experience, but also the structure and folder hierarchy in larger projects is well thought-out and works well in the long run.

## You will work with the smartest people

Compared to a company that has a limited number of employees to work on feature requests and bug fixes, you have the brightest minds working in open source development.

In my imagination, I see it as swarm intelligence, which can solve every problem that arises.

The more people that join a community, the better a project can scale. It can be like a buzzing beehive, where you could have pull requests to a codebase from users all around the world 24/7, non-stop.

A good example is the well-known code editor [Visual Studio Code](https://github.com/microsoft/vscode) which got very popular with a total of 1,200+ contributors on GitHub.

You won’t see a single day without any pull requests on GitHub and the monthly release cycles always bring out new amazing features.

When you participate in a project and submit a pull request, you will receive extremely helpful feedback from highly experienced maintainers. You can then implement that feedback to grow as a developer.

## Your own code could be used globally
Since some software development projects are used by millions of users daily, it can be very rewarding to see your own code helping so many people.

I wrote lint rules for the JavaScript projects called [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) and [svelte](https://github.com/sveltejs/svelte). It’s a great feeling knowing that my pull request will improve the code quality of many developers all around the world.

From my personal experience, it is also motivating to get positive feedback in the form of a thankful comment.

## Open source projects are inclusive
A great advantage of free open source software is that no one is excluded from using the product because they can’t afford it.

While some open source projects cost money to use, most do not.

Also, when you’re contributing to a project on GitHub, many of the bigger repositories have a code of conduct. These make sure that every contributor feels welcome and accepted in a project.

## Projects are starting to become sustainable
The main goal of a company is to become profitable - which often leads to questionable decisions. But open source software focuses on solving the needs of its users as the highest priority.

Most projects are entirely volunteer-supported, and project maintainers will unfortunately never see any financial reward. But there are great ways nowadays that you can help make these projects sustainable.

With websites like [OpenCollective](https://opencollective.com/) or [GitHub Sponsors](https://github.com/sponsors), you can donate to speed up the development of projects that you like.

Personally, I think that it would be great if every company donated at least a small sum to open source software projects because they profit from these tools daily. Such support would reduce the stress for a lot of maintainers and some could even take up the work full-time.

## How to contribute to open source
Contributing to open source development sounds more scary than it really is. There are plenty of projects out there on GitHub which encourage first time contributors and newbies to take action by labeling issues as “Good first issue”, “Beginner friendly” or “Help wanted”.

Don’t know where to start?

Ask yourself: what is an application that you enjoy using every day and where you would want to give back?

It can be as simple as searching for that application on GitHub and looking through the open issues.

It doesn’t have to be a code contribution, either - you can also help out by creating a pull request to update the documentation, fix typos that you find, or by doing a thorough code review.

The `README.md` file of a project usually includes a passage of how to contribute.

If you decide to contribute to a project, I recommend reading my article about [Contributing To Open Source Projects The Right Way](https://markushatvan.com/blog/contributing-to-open-source-projects-the-right-way). It’s a detailed step-by-step guide about the contribution workflow.

I wrote it to be very beginner friendly, so don’t worry about becoming overwhelmed. You will be able to find your first project and submit a contribution in no time!

## Wrapping up
It always impressed me that everyone in the world can join an open source software project and work on it.

And open source software only works as a collaborative effort. The goal is to produce the best product or service without compromising on important factors like stability, security, or user privacy.

I hope you understand the importance of open source software and that you value its benefits. No matter what your reasons are for giving back to the open source community, just know that you are highly appreciated!

Many projects can only thrive with support and contributions from developers like you.

## Helpful resources
- [The State of the Octoverse](https://octoverse.github.com/) 
- [What is open source?](https://opensource.com/resources/what-open-source)
- [What Motivates a Developer to Contribute to Open-Source Software?](https://clearcode.cc/blog/why-developers-contribute-open-source-software/)