Open Source Basics
Open source software (OSS) makes its source code freely available, so anyone can inspect, use, and build upon it. Unlike closed source projects, all development work, from code to user discussions, happens in public. For developers starting out, contributing to well-known OSS projects offers a practical way to engage with large codebases used by real users worldwide.
GitHub hosts much of the open source ecosystem. The challenge for newcomers is figuring out where to begin, which is why issue labels like good first issue exist. This label signals that a particular issue is beginner-friendly and represents a manageable entry point into a project.
Finding a Project to Contribute To
Your first move should be locating a project written in a language you know. GitHub Copilot Chat can help with this search:
- Open github.com and click the Copilot icon to launch the chat interface.
- In the chat window's bottom-left corner, use the combo box to select Ask.
- Enter a prompt like this one, adjusting the language as needed:
I’m looking for a list of open source projects written in TypeScript that are accepting new contributors. Search GitHub and narrow down the list to repositories that use the good first issue label and have over 100 stars on GitHub.
Copilot returns a list of candidate repositories filtered by the good first issue label. To manually browse these issues, say for the vscode repository:
- Go to the repository's main page.
- Select the Issues tab.
- Open the Labels dropdown menu.
- Type "good" to narrow the options, then select
good first issue.
The page will refresh to show only beginner-friendly issues that are ready for new contributors.
Evaluating a Repository
Before committing time to any project, check for signs that it is actively maintained and open to outside help. Look for these qualities:
- An informative
READMEwith setup instructions. - A contributor's guide outlining the contribution workflow.
- An open source
LICENSEclarifying usage rights. - At least 100 GitHub stars, indicating community adoption.
- Recent commits showing maintainers are actively reviewing code.
- Issues labeled
good first issuesignaling willingness to mentor newcomers.
Consider the gitfolio repository as an example. It has a detailed README, a CONTRIBUTING.md guide, a LICENSE, several thousand stars, and recent activity. Provided you are comfortable with TypeScript, that makes it a solid candidate for your first contribution.
Your First Pull Request
The contribution workflow starts with forking. A fork is a personal copy of the repository where you can freely experiment without affecting the original project. Once your fork exists, you can make changes and propose them upstream:
- Navigate to the repository's home page.
- Click the Fork button at the top.
- In the dialog, keep yourself as owner and retain the repository name.
- Click Create fork.
- In your fork, open
README.mdto edit the file. - Add your proposed text
- Click Commit changes… in the top-right corner.
- Select Create a new branch from this commit and start a pull request.
- Click Propose changes.
- On the next screen, click Create pull request to open the PR form.
- At the top of the form, select compare across forks to compare your fork with the source repository.
- For a real contribution, add a meaningful title and description, linking to the relevant issue.
Submitting the pull request formally proposes your change to the original repository. After that point, the modification is no longer confined to your fork—it becomes a visible update awaiting review by the maintainers.
If the request is approved and merged, GitHub automatically applies your changes from the fork into the main branch of the original repository.
From here, the path forward is practice: locate a project that fits your skills, work on an issue marked good first issue, and refine your process through repeated contributions.



