If you've been considering contributing to an open source project, you might be weighing the pros and cons of doing so.
You might hear things like open-source projects won't help you grow. Or they can't change your career trajectory. And that your contributions definitely won’t add to your portfolio.
If you’ve ever heard anything like this, these people might not know that much about the benefits of contributing to open source projects. And those benefits are many.
In this article, I'll share contribution opportunities and and how to get started contributing.
Many people assume that developers are always working in silos with zero outside connection.
But that's not necessarily true of developers these days. They:
- create stuff in public,
- are active on social media, and
- they actively connect with people all over the world.
In fact, open-source projects bring developers together in a more collaborative setting than almost anything else.
What is Open Source?
You might often hear about open-source projects and building-in-public. But what do these terms mean?
Most simply, it means that what you create is free to and open to anyone to use. It also means that with collaboration, your projects keep getting better.
Open Blogging Platforms
With open-source, you are giving other people the liberty to study or build upon your existing project.
And there are plenty of platforms out there that give developers a chance to write in public. There's Hashnode, Dev.to, Google’s Dev Library, and many more. We can even call these developers "Developer-as-a-blogger" (DaaB) for their blogging contributions. :)
I have been working with the Dev Library for over a year. I've seen almost 2000+ submissions from 80+ countries now. Pretty good!
How to Get Started Writing Tech Tutorials
But how do you know where to begin with your blogging journey as a developer?
Let’s focus on the following tips:
- Don't let imposter syndrom win: No matter where you are in your tech career, imposter-syndrome will likely rear its ugly head from time to time. Even with 7-8 years of experience, I sweat at times thinking whether I am good enough.
So, don’t worry. The best way to start writing is to try writing as you build a project. Explain it to yourself as if you were talking to a friend, helping them understand it. This way, anyone reading your tutorial will know how to build the project.
- Many articles exist on the same topic: This is typically the case. Of the 7 bilion people in the world, it’s very likely that someone else is writing about topics you’ve worked on.
But the way you describe, define, and showcase features is going to be different. Focus on that.
- How do I even start?: Blank-page anxiety exists. To overcome this, start creating sections with the high-level topics. An outline, if you will. Then start adding content to it. Make sure to add more steps, bullet points, and visuals.
To structure and edit your content better, you can refer to Google’s tech writing courses and style guides like freeCodeCamp's and MailChimp's.
- How to make your first contributions: First contributions are special yet overwhelming. To identify the right GitHub repo, look for open-source projects in your area of expertise. Network with the people who have made contributions in your tech stack. Understand the process and start contributing.
Now that we've been through these pointers, you are ready to kickstart your open-source journey.
My Open Source Journey
To help you start contributing to projects in your areas of expertise, I'll share some tips and guidelines in a minute. But first, a bit more about me.
Until 2019, I was unaware of the term open-source. Yes. I wasn't active on social media except LinkedIn where no one talked about open-source.
In a nutshell, my horizons were quite narrow.
But since I was a tech writer, I was an active member of a global community of tech writers called Write the Docs. I was scrolling through their Slack channel when I found out about Google Season of Docs.
I browsed through the list of participating organizations and found an interesting one. Then, I reached out to them via their Slack channel and offered to act as a volunteer.
One year of volunteering with ‘The Good Docs Project’ opened a bunch of opportunities for me. We created open-source templates for various use-cases like:
- a glossary template for open-spatial organizations globally,
- an onboarding template,
- an API template,
- a documentation template.
One year later, after networking and gaining experience, I applied as a participant. The Metanorma organisation saw my volunteering experience and selected me for GSoD'21. And it's in that way that I became a part of the ever-growing open-source community.
How to Start Contributing to Open Source
When you're starting to contribute, don't just focus on results – focus on the process.
Here are some pointers to help you start contributing:
Learn Git and GitHub
Before finding repos to contribute to, get hands-on knowledge of Git commands and the GitHub platform). Get a basic understanding of:
- how to fork the repo
- how to make commits
- how to merge commits
- how to raise a pull request
Among many other Git/GitHub concepts, these are some of the most important.
If you want to learn more, here are some helpful resources:
Browse through some projects
Now that you are well-acquainted with the tools and software, how do you decide which project to start with?
Well, first of all, start with the topics you're interested in. Browse github.com/topics/[topic of your interest] to search for something you'd like to work on. For example, if you want to browse projects regarding Python, then you can use this: https://github.com/topics/python.
Unless it's something very niche, you should find tons of projects concerning your chosen topic to start your contributions.
Once you've found a project, go to the beginner-friendly issues of that repo. For that, type github.com/[owner]/[repository]/contribute. Select an issue to start contributing. You can find such issues under the tag good first issue for beginners.
If you’ve been active on GitHub, your explore page will show some curated recommendations based on your past contributions, stars, or forks.
Participate in open-source programs
Take part in the open-source programs put on by major organizations. If not as a contributor, then as a volunteer to learn, ideate, contribute, and then take part.
Explore a lot
The biggest blindspot of open-source contributions is not looking further or not exploring.
Open-source projects are not restricted to code contributions. The various other ways to contribute are:
Update the documentation
For any project, it is important to have an extensive README. So, dive into improving the README of your favorite project to make it easier for others.
So how do you go about doing that?
Well, for the Metanorma project:
- I performed the actions mentioned in the documentation after downloading the local version. This helped me to figure out missing steps, errors, or any fluctuations.
- Next, I did qualitative and quantitative analysis of the existing documentation. This helped me figure out the missing URLs, and hard to understand sections.
- After finding these parts, I built a proper information architecture. Information architecture of the documentation will then help you focus on the content.
Help with the design
Organizations do need designers for their projects. So, if you are a designer, create posters, visuals, or carousels for the open-source org.
Be a community builder
Open-source is all about community. People who come together, code together, contribute together, and improve the project together.
Become the community person for those open-source projects. Bring contributors together. Perform various functions with them:
- Assign tasks
- troubleshoot issues
- organize meet-ups
- build ambassador programs
- conduct workshops
- create newsletters
Help with Localization
Help build the projects in languages you are familiar with. Suppose you are a Spanish native speaker. Find some projects in your communities. Translate the major projects from English to Spanish so the project is available to more people worldwide.
To learn about some other ways to contribute, refer to this repository from freeCodeCamp.
Open-Source Projects to Contribute To
This is a list of various open-source projects that have an active community of folks waiting for contributions. They have issues ranging from beginner to expert level.
- Supertokens: Supertokens is an open source auth0 alternative that allows you to set up authentication in less than 30 minutes. The project provides on-premises deployment giving you all rights to your users’ database. To contribute, follow their GitHub repo, look for the existing issues, go through their documentation, and start contributing.
- Nimble Edge: Nimble edge is a decentralized platform that is taking the world from traditional cloud computing to edge computing. The shift from cloud computing to edge computing will allow devices communicate with each other intelligently, share workloads, and use the cloud accordingly. To contribute, follow their GitHub repo, look out for the issues, and start contributing.
- Dev library: Dev Library is Google’s new open-source platform that displays content created by external developers using any of the Google technologies (Android, Angular, Flutter, Firebase, Google Cloud, Machine Learning). The platform is segmented into product areas displaying quality projects to contribute to. To contribute, follow any open-source project and dig in with contributions.
- Codetriage: Start contributing by finding any open-source repo from this gold mine.
- The Good Docs project: The Good Docs is an open source community creating templates to combat blank-page anxiety. The community wants to create templates for anything and everything. If you feel you have a template idea too, join their slack channel. To contribute, follow their GitHub repo, join their slack channel, and start contributing.
We have seen some incredible work by developers using the Google technologies on Dev Library as well. Some have built a clone application of Spotify using Angular, others have built a project detecting melanoma (a type of skin cancer) using skin lesion images, while someone created a WhatsApp image picker replica.
And of course freeCodeCamp itself is an open-source project. freeCodeCamp can be your go-to platform for learning about and contributing to open source.
So what do you think – time to start contributing to open source?
Look at what Santosh Yadav, an open-source expert in Angular and a GitHub star, shares:
“Contributing to Open Source helped me in ways I would have never imagined. I started it as a way of giving back to the community and got recognition from the community. Then I became Angular GDE and also India's First GitHub Star.
OSS helped me learn the technology in depth and helped me get a good job. I even worked as a consultant for 1.5 years, and my Open Source work helped me get clients with ease.
I was able to give a good life to my family. I was living paycheck to paycheck for 10 years before I started Open Source, and it changed my life”.
Such stories tell us how open-source contributions can change your career trajectory. No matter what your job profile is–start contributing to open-source projects.