Post

How to Contribute to Open Source on GitHub

A practical 7-step system for making your first (or fiftieth) open-source contribution on GitHub — from finding a project to getting your PR merged.

How to Contribute to Open Source on GitHub

Your GitHub profile is your live résumé — and a merged pull request is worth more than a line on a CV. The barrier is lower than you think, and the 7-step system below removes every excuse for not starting.


🤔 Why Bother?

Most developers overestimate the difficulty and underestimate the return:

What you getWhy it matters
Visible proof of workGitHub is a portfolio that speaks for itself
Real collaboration skillsCode review, async comms, team standards
NetworkYou show up in the right places, people notice
Compounding repsEach PR makes the next one faster

You don’t need to be a 10x engineer. A well-written docs fix can unblock hundreds of developers. Start there.


🗺️ The 7-Step System

flowchart LR
    A["🔍 Find a\nProject"] --> B["🐛 Pick\nan Issue"]
    B --> C["📖 Read the\nContrib Guide"]
    C --> D["🍴 Fork the\nRepo"]
    D --> E["🌿 Branch,\nCode, Commit"]
    E --> F["📬 Open\na PR"]
    F --> G["💬 Handle\nReview"]

    style A fill:#4A90D9,stroke:#2c5f8a,color:#fff
    style B fill:#5BA85A,stroke:#3a6e39,color:#fff
    style C fill:#E8A838,stroke:#b07a1e,color:#fff
    style D fill:#9B6EBD,stroke:#6b4785,color:#fff
    style E fill:#D9534F,stroke:#a02926,color:#fff
    style F fill:#5BA85A,stroke:#3a6e39,color:#fff
    style G fill:#4A90D9,stroke:#2c5f8a,color:#fff

1. 🔍 Find a Project

Don’t stare at 128M repos. Use smarter entry points:

  • GitHub Explore → filter by topic or language
  • Issue labels → search good first issue or contributions welcome
  • Your own stack → the best repo to contribute to is one you already use

The fastest path to a merged PR is a project you actually understand and care about.


2. 🐛 Pick an Issue

Browse the issue queue and find something appropriately scoped. Before touching any code:

  • Read through the thread — context saves you from doing the wrong thing
  • Leave a comment expressing interest — avoids duplicate effort and signals good faith
Issue LabelGood For
good first issueFirst-time contributors
documentationAny skill level — often high impact
bugRequires deeper codebase familiarity
feature requestUsually needs prior discussion first

3. 📖 Read the Contributing Guide

Every project has its own rules. Before writing a single line:

  • README.md — general setup and usage
  • CONTRIBUTING.md — PR format, branch naming, commit style
  • CODE_OF_CONDUCT.md — community standards

Someone else’s code is their temple. Don’t walk in with your muddy shoes on.


4. 🍴 Fork the Repository

Click Fork on the GitHub project page. This creates your own copy — you can modify it freely without touching the original.


5. 🌿 Branch, Code, Commit

1
2
3
4
5
6
7
8
9
10
11
12
13
# Clone your fork
git clone https://github.com/YOUR_USERNAME/repo.git
cd repo

# Create a focused branch
git checkout -b fix/typo-in-readme
# or: feat/add-dark-mode

# ... make your changes ...

git add .
git commit -m "Fix typo in README installation section"
git push origin fix/typo-in-readme

One concern per PR. Focused changes get merged — sprawling refactors get closed.


6. 📬 Open a Pull Request

Head back to GitHub. You’ll see a banner to open a PR from your pushed branch. Write a description that covers:

  • What you changed and why
  • Closes #42 if it resolves an issue — GitHub auto-links and closes it on merge
  • Screenshots or test output if the change is visual or behaviour-affecting

7. 💬 Handle the Review

Review timelines vary wildly — hours to weeks. Feedback can feel personal, but it isn’t. Maintainers are protecting the health of their codebase.

  • Respond promptly and professionally
  • Push follow-up commits to the same branch — the PR updates automatically
  • Ask clarifying questions if feedback is unclear

Prepare for the worst, hope for the best. The review is a conversation, not a verdict.


📊 What a Good First PR Looks Like

✅ Good❌ Avoid
One focused changeGiant refactors as a first PR
Clear commit messagefix stuff or update
References an issueSurprise PRs with no context
Follows existing code styleReformatting entire files
Includes tests (if required)Skipping test coverage

▶️ Video Reference


💡 One-Sentence Intuition

Find a project you use → claim a small issue → read the rules → fork → branch → PR → respond to review. Repeat until it’s muscle memory.


First in a short series on software engineering fundamentals. Next: Git internals — what actually happens when you commit.

This post is licensed under CC BY 4.0 by the author.