Looking to Contribute to Open Source? My Top 5 Tips to Get Started

Xavier «X» Santolaria
5 min readAug 3, 2022
Open Source Initiative Official Logo.

Getting started in open source can be done in many different ways, and not everyone will follow the same path.

I’ve recently been asked by one of my mentees, how to get started contributing to open source. As with many things, if it’s new, you usually don’t know how to approach it. Where to start. Who to talk to? Am I too junior to be considered for project X? Would my contribution matter?

All these questions can be hard to tackle, so I will try to help guide you through the process with my top 5 tips to get you started contributing to open source.

1. Identify a Domain / Area you Like, or Want to Learn

Are you a developer? Do you already a preferred programming language? You can’t code, but you’re good at writing documentation, or correcting grammar and spelling issues? You love an open source software you’re using, but you’d like to see some improvements or new features?

The above are questions that can already help you identify the project (see the Links and Resources section below to help you with that), and the tasks you could be contributing to. If you’re a first time contributor to a project, do not fool yourself in thinking that your first Pull Request (PR) has to be a 1000+ lines .diff — Any idea, fix, patch, as small as it is, can be a valuable contribution to any project. Start small, think big.

Let me share my own experience here.

My major contribution to an open source project was with OpenBSD. I was already using OpenBSD because I liked their philosophy of putting security first (and proactively), clean code, integrated cryptography, and portability. Back then, while OpenBSD was mostly used for firewalls, {web,mail,dns,…} servers, I was also using it as workstation, on different kind of hardware. Which means… a lot of softwares (and required libraries) were not necessarily there and available in the ports/ tree. This is how I got started: by identifying the tools and softwares I wanted to run on my laptops, built ports, tested, failed, tested again, succeeded, and submitted them to the developers via the ports@ mailing list for inclusion in the official project repository.