DEV Community

loading...
Cover image for Why You Should Start Contributing to Open Source Software Right Now

Why You Should Start Contributing to Open Source Software Right Now

mhatvan profile image Markus Hatvan Originally published at markushatvan.com on ・5 min read

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 worldwide. It is open source and free to use.

Linux is powering 30% of all websites 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 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 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 and 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 or GitHub 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. 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

Discussion (10)

pic
Editor guide
Collapse
thorstenhirsch profile image
Thorsten Hirsch • Edited

This number surprises me:

Linux is powering 30% of all websites globally

I've never seen such a LOW number for Linux' web server market share. Your source is also stated on Wikipedia, but the other sources have completely different numbers:

W3Cook: Linux 96.4%, Unix 1.7%, Windows 1.9%
Security Space: Linux+Unix ~80%, Windows ~20%

These numbers look more reasonable to me since everything cloud-related is based on Linux. So while Windows IIS might have had a big slice some years ago, the market share of Linux must have grown significantly since.

So if you want to stress the importance of Linux there are plenty of statistics that give you far better numbers than the 30% you've cited.

Collapse
dmbaturin profile image
Daniil Baturin

W3Tech reports are thoroughly confusing.

w3techs.com/technologies/details/o... says that "Unix is used by 71.8% of all the websites" and that "Linux is used by 28.7% of all the websites.". This sounds like Unix and Linux are distinct entities. But, what's that mysterious "Unix"?

Now let's check out w3techs.com/technologies/details/o...
It says that 40% of "Unix" is Linux and 59% is "Unknown".

So, according to their report Linux knowingly powers ~60% web servers. This sounds more plausible already. A lot of the "Unknown Unix" is likely Linux as well of course.

Collapse
talentlessguy profile image
v 1 r t l

pardon for shameless plug, but if someone wants to help to a cool project without much effort, I'd like to introduce tinyhttp

GitHub logo talentlessguy / tinyhttp

⚡ 0-legacy, tiny & fast web framework as a replacement of Express

tinyhttp

Tiny web framework as a replacement of Express

npm GitHub Workflow Status Codecov Vulnerabilities Codacy grade Last commit NPM

tinyhttp is a modern Express-like web framework written in TypeScript and compiled to native ESM, that uses a bare minimum amount of dependencies trying to avoid legacy hell.

Here is a short list of most important features that tinyhttp has:

  • 2x faster than Express
  • Full Express middleware support
  • Async middleware support
  • Native ESM and CommonJS support
  • 🚀 No legacy dependencies, just the JavaScript itself
  • 🔨 Types out of the box
  • 🔥 Prebuilt middleware for modern Node.js

Visit tinyhttp website for docs, guides and middleware search.

Install

tinyhttp requires Node.js 12.4.0 or newer. It is recommended to use pnpm, although it isn't required.

# npm
npm i @tinyhttp/app
# pnpm
pnpm i @tinyhttp/app
# yarn
yarn add @tinyhttp/app
Enter fullscreen mode Exit fullscreen mode

Docs

You can see the documentation here.

Get Started

tinyhttp is compiled to ESM (and…

it's a 0-legacy Express-like web framework, and currently it needs a lot of tests and examples. Both are easy to make, but it takes a lot of time to do it by one person. so if u want to help this project, feel free to start :D

Collapse
mhatvan profile image
Markus Hatvan Author

Cool project! I will pick an issue and contribute when I find the time!

Collapse
nikhilmwarrier profile image
Nikhil M Warrier • Edited

Hey, an open source beginner-friendly project needs some love!
It is a new CSS framework and component library.
It would be cool if more people would contribute.

Project roadmap is in the README
Project link: github.com/nikhilmwarrier/fluidcss

Collapse
qmenoret profile image
Quentin Ménoret

With my company we organise a bi-monthly Meetup to help people get started on Open Source! More info here: medium.com/doctolib/interactive-re...
If any one would like to join the next event, feel free to opt in here: meetup.com/fr-FR/doctolib/events/2...

Collapse
jacobkim9881 profile image
Jacobkim

Contributing is amazing because it feels totally different to building applications alone!

Collapse
nawawi profile image
Nawawi Jamili

Hi there, I'm creating a WordPress plugin to handle object cache as an alternative to Redis, feel free to try wordpress.org/plugins/docket-cache/ -- Thanks.

Source code: github.com/nawawi/docket-cache

Collapse
schmelto profile image
Tom Schmelzer

Nice post!

Collapse
phongduong profile image
Phong Duong • Edited

I like OSS because I can express my creativity, learn from the best, and contribute to a better solution. Thank you for sharing