Free and open-source software (FOSS) plays a very important part of our lives. It powers most of the websites, 90% of server infrastructure runs on it, even our phones use an open-source kernel under the hood. But how does that work and what can you do to contribute?
What is open-source software?
FOSS stands for free and open-source software and such software can be classified as both free and open-source. Everyone has a right to change this software in any way, redistribute it and look at the source code. You use FOSS on a daily basis, even if you are not aware of it. Nginx and Apache HTTP servers power most of the websites and are considered to be FOSS, Linux is dominating the server infrastructure, Android OS is essentially FOSS, except for the Google Services, this website runs on WordPress that is also FOSS.
Who creates it?
Most FOSS software out there is designed, written and supported by the community. Many of these people have never met each other in real life and are not getting paid for their work. There are a couple of reasons why people contribute to open-source:
- Altruism
- To gain professional experience and a valuable entry on their resume
- They use this software as a part of a bigger project and need to fix a bug or add a feature
- They are being paid by their employer to participate in certain FOSS projects
The most confusing point in FOSS is how do these projects make money. The answer is simple: they don’t. They live off voluntarily contributions and donations from the community, but there is also a big chunk of corporate involvement in some of these projects (e.g. React & React-Native by Facebook, Android AOSP and Fuchsia by Google, etc.). Companies may decide to make some software open source if they do not benefit from having exclusive rights for it. For example, it makes no sense nowadays for any company to own a proprietary HTTP server (hello, Microsoft).
How can I help?
So, what can you do to help open-source? First of all, you have to evaluate your skills and figure out what is it that you can do best. You do not even have to write code: FOSS projects always need designers, translators, documentation writers, PR & social media promoters, build system maintainers, etc. This list may be very long and depends on the size and purpose of the project.
After you have your skillset figured out, it is time to choose a project. Go on https://up-for-grabs.net, which is a website that lists FOSS projects that are in need of contributors and look there. Or, maybe you have a project in mind, maybe one that you use often or most familiar with. Go to their website and search for Contributors/How to help sections.
One of the friendliest FOSS projects for newcomers I came across is Mozilla. They have a long list of good-first-bugs, which are bugs easy enough for newcomers to fix. A mentor who is happy to help often oversees these bugs. Here is their website with good first bugs: https://codetribute.mozilla.org/ and their general introduction for contributors: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction.
That is it for today, happy hacking! Please share your experience with open-source in the comments and see you soon.