Published Oct 28, 2023 ⦁ 7 min read

Contributing to open source projects? Here's how to get started

Introduction: An Overview of Contributing to Open Source

Open source projects rely on contributions from developers around the world. Without the collaborative efforts of the community, many popular open source tools like Linux, TensorFlow, and React would not exist. Contributing can seem daunting at first, especially for those new to open source. However, it is an incredibly rewarding experience that is easier to get into than you may think.

This guide aims to walk you through the basics of finding open source projects that need assistance, making effective code contributions, and growing as an open source contributor. Platforms like DevHunt are great for discovering new and innovative open source projects that could use your help. With the right approach, contributing to open source is very achievable for developers of all skill levels.

Finding Open Source Projects That Need Help

Finding projects that are welcoming to new contributors is key when you're starting out. Here are some tips for identifying open source projects where you can make an impact:

  • Look for projects that are active on GitHub, GitLab, DevHunt, etc. but seem understaffed or overwhelmed with issues. They likely need help keeping up with demand. Popular projects like Homebrew have tons of open issues.
  • Search for projects that are tagged with "help wanted" or "good first issue". Maintainers often use these labels to highlight tasks fit for new contributors.
  • Ask in project forums, chats, or Discords if they need assistance with any particular tasks or issues. Offering directly can lead to good opportunities.
  • Think about projects you already use and would like to improve. Contributing to tools you find valuable can be very motivating.
  • Check the issue queue and recent pull request activity. A long open issue list or few recent PRs suggests a project that could use contributor help.
  • DevHunt features many open source projects seeking assistance across a wide range of categories that you can browse and engage with.

Identifying Good First Issues

When looking for your first issue to tackle, keep these tips in mind:

  • Look for issues labeled "good first issue" or "beginner" specifically. These highlight tasks designed for newer contributors.

  • Avoid issues that require extensive knowledge of the codebase. Look for small fixes instead to start.

  • Pick issues that are well-documented with clear expectations. These are easier to implement for new contributors. Here's an example of a good first issue:

  • Good first issues often involve minor bug fixes, documentation improvements, or small feature requests.

  • Start with an issue you feel confident you can complete. This will build momentum and confidence.

Understanding Project Needs

Before diving into the code, make sure to understand project needs and processes:

  • Read the CONTRIBUTING docs. This will teach you how to contribute technically to the project.
  • Check open issues and discussions on GitHub/GitLab to see what is actively being worked on. This provides context on priorities.
  • Talk to project maintainers via issues, Slack, Discord or forums to understand roadmaps, release cycles, and where they most need help.
  • Review recently merged pull requests to see what kinds of contributions the project accepts.
  • Subscribe to project blogs, newsletters, or social media to stay updated on needs.

Making Effective Code Contributions

Once you've identified a project and issue to tackle, here are some best practices for making code contributions:

  • Fork the repository and create a new branch for your specific contribution.
  • Write clear, concise commit messages explaining each change you make. For example:
Fix typo in CONTRIBUTING.md
  • Follow the coding conventions and style guides outlined for that project.
  • Write tests covering any new code or functionality you add or change.
  • Keep pull requests small and focused on one specific improvement or bug fix.
  • Be responsive to code review feedback from project maintainers.

Creating a Pull Request

When submitting your contribution via pull request, be sure to:

  • Reference any relevant issues in your PR description. This provides helpful context. For example:
Fixes #123
  • Clearly explain your changes in language newcomers will understand.
  • Include screenshots, gifs, or demos if adding or changing user interface code.
  • Ask project members specifically for feedback if you're unsure about anything in your implementation.
  • Link to any API documentation, tutorials, or examples you referenced when creating your PR.

Responding to Reviews

It's common for maintainers to provide feedback or request changes on your pull requests through code reviews:

  • Be grateful for any feedback, as reviewers are trying to help you learn.
  • Ask clarifying questions on anything you don't fully understand in the reviews.
  • Make changes quickly and commit them back to the same branch for transparency.
  • Politely communicate if you disagree with any suggested changes and explain your reasoning.
  • Thank the reviewers for their time and merge once feedback is resolved.

Growing as an Open Source Contributor

As you gain confidence, here are some ways to progressively grow your open source contributions:

  • Start small with even documentation or comment fixes, which are still hugely valuable.
  • Build rapport and trust with projects by consistently submitting quality pull requests.
  • Join project chat rooms or discussions on Slack/Discord to stay involved with the community.
  • Gradually tackle more complex feature requests and bug fixes as you ramp up knowledge.
  • Become a reviewer yourself to gain deeper understanding of project processes.
  • Consider taking on maintainer responsibilities in projects where you're invested.

Gaining Visibility

You can raise your profile and highlight your contributions by:

  • Having a consistent GitHub/GitLab username that people associate with your work.
  • Creating pull request templates with checklists outlining your contributing process.
  • Using DevHunt profile badges to showcase your project contributions.
  • Highlighting contributions on LinkedIn and in job interviews/applications.
  • Speaking or writing about your experiences contributing to open source.

Expanding Your Skillset

Contributing to open source helps you:

  • Learn new languages and frameworks by working on related projects.
  • Improve code review and analytical skills by reviewing others' work.
  • Develop teamwork and communication ability through project communities.
  • Understand release processes and CI/CD by helping projects ship updates.
  • Debug all sorts of issues across different projects and domains.

Start Making Open Source Contributions

Hopefully this guide has shown that contributing to open source is very achievable. Here are some key takeaways:

  • There are tons of great projects that need your help in their communities.
  • Start small, ask questions, and learn project workflows.
  • Opening meaningful pull requests improves your skills and looks great on a resume.
  • Consistency and high quality contributions lead to increased responsibilities.
  • The open source community appreciates any help, no matter how small.
  • Use platforms like DevHunt to find your next open source project to assist.

The most important thing is to start somewhere, so pick an open source project today and begin making contributions. Even small fixes make a difference and you'll learn a tremendous amount through hands-on practice. The open source community is welcoming and will be happy to have you on board!

If you're looking to get started contributing to open source projects, check out DevHunt - a great platform for discovering popular open source tools across all categories that could use your help. Browse open source projects on DevHunt to find one that matches your interests and skills.