One of the top questions I get is “How do I find an open-source project to contribute to?” It’s a fair question because there’s a lot of encouragement to contribute, but not a clear path to find the right issue for you. The truth is that maybe you shouldn't be looking for a place to contribute at all. Maybe you need to understand what your real goals are and start by building something you need, understanding open source projects and communities, and approaching contributions with a goal to improve the project rather than improving your resume.
Start by Building Something You Need
When you build something for yourself, you develop a deeper understanding of your own goals, requirements for a project, and how to solve specific problems.
When you're building for yourself, you become more familiar with the complexity of coding, problem-solving, and project management.
Building your own project first also teaches valuable lessons in ownership and responsibility. You learn to see a project through from conception to implementation, and how to approach the challenges that come up along the way. What you learn from this experience will help you approach open source contributions with the right mindset and make informed and thoughtful contributions to projects that benefit their communities.
You'll learn more about how to align your efforts with the needs of the project and its users, which ultimately leads to a more rewarding and effective contribution experience.
Understand Your Skills and Interests
Working on your open projects can help you better understand your skill-level and what you have the ability to take on. It’s so important to understand, in fact, that I wrote a whole post on it: How to Assess Your Skill Level Before Contributing to Open Source.
Once you have a good understanding of your skill level, you can better assess your ability to make meaningful contributions. If you’re a beginner, don’t take on a complicated issue that requires more experience. Likewise, if you are an experienced programmer, don’t take an issue that’s meant for someone in their early career stages.
Use Open Source Software
Scouring the internet for a project to submit a one-off Pull Request (PR) to decreases your connection to the project and your desire to see it be successful. In a recent Open Source Friday Stream with @ladykerr and @bdougieyo, Jan Ainali pointed out that it's "much better [is] to contribute to something you use and where you would like to see an improvement."
When you are invested in a project, you’re more likely to navigate challenges, ask meaningful questions, and to grow and progress. The more you use a product, the better contributor you’ll be, because you have a depth of understanding that helps you identify what’s useful for a project and its community. Using open source software gives you access to opportunities to create bug reports or ask for new features because you understand the project and the user's expectations for the project. Giving feedback is a valuable contribution.
Find an Open Source Community
When you're part of a community, you get access to insider information about the project. Listening in those communities, allows you to engage with the creators of the open source project. This is your opportunity to learn, understand, and grow. You can hear Kelsey Hightower talk about community here. Being involved in the community also gives you the context you need to create meaningful contributions, decreases the barrier to entry, and allows you to understand the type of project and support that you’ll be offered if you contribute to their projects.
When you are involved in a community, you are more likely to be driven by a genuine need to improve the software, which leads to more useful contributions. This mindset shift from self-improvement to community improvement not only benefits the open source project but also helps to create a more collaborative and supportive open source community.
Talk to Other Open Source Contributors
Connecting with other contributors can be an important step in becoming an informed and effective community member. When you engage with them in their communities, follow them on social media, or interact with their content (reading and commenting on their blog posts, watching or commenting on their videos, listening to their podcasts, etc.), you can gain valuable insights into the open source ecosystem and the specific needs of the project. Understanding the pain points and how contributors discuss and address the issues helps you to avoid adding more work for the maintainers and instead becoming a positive force in the project.
Being well-informed about the community dynamics and project challenges means that your contributions are more likely to be meaningful and well-received. It also means you'll be better equipped to offer solutions that align with the project's goals and the community's expectations.
Additionally, tools like StarSearch can help you identify key contributors to projects you're interested in. By finding those with overlapping experience or expertise, you can connect with the right people and build meaningful relationships.
Look for Project Tags and Labels
Once you've created your own projects, used and learned about the project you're interested in contributing to, and joined and participated in the community, you can start looking at the issues to see if they're a good fit for your first contribution. Many open source projects use tags and labels like "good first issue" to indicate tasks that are suitable for beginners. These tags make it easier to find issues that match your skill level and provide a clear entry point for contributing.
Write Your Own Issue
Remember, good first issues don’t exist; the best issue for you is probably the one that you write yourself.
Takeaways
Contributing to open source shouldn't be about checking the box of things to do if you're an early career developer. It should be about making a meaningful contribution to a project that improves the project for all users. This will also go a long way towards making valuable and recognized contributions.
Top comments (10)
Useful. I read elsewhere that it's how may get a job. I think any way that when you've technical background, you must contribute/involve in your fields' projects. It's how to get experiences. It's not only for developer career. Thank you too much.
Thanks for reading! Contributing to open source definitely brings you into the community and allows for more connections and opportunities when you make meaningful contributions.
This so enlightening, Its has actually changed my mindset, Thanks
Thanks for the comment! I'm glad you found it useful.
This is actually enlightening. Thank you.
Thanks, you really shared a very nice resources. You did a nice job.
Thanks! Hoping that this helps folks get started.
I think there are commonly three problems which is problematic for beginners like me are...
You guys solved first two problems for us. We are very thankful for that.
But now, how to understand the code-base which we are going to contribute ?
Like some issues have tag like 'first-timers-only', but still have code which is not easy to understand. How to tackle this problem?
I totally get that; there are so many opportunities to contribute that don’t get the “green square.” Be part of the community, answer questions, take your time to familiarize yourself with the codebase — it probably won’t be a quick thing. You can contribute, but it may not be in the ways that you’ve traditionally thought of as contributions.
We’ve had a couple of issues open as “good first issue” on OpenSauced for a while and no one has taken them.
I got u, thank u so much for ur suggestion, cuz I was getting frustrated for not understanding codebase, it may takes some time to familiarise with codebase, and also I'll checkout OpenSauced 'good-first-issue'
Some comments may only be visible to logged-in visitors. Sign in to view all comments.