Remember the first time you tried contributing to open source?
If you were like most developers, the experience involved staring at a massive, complex codebase on GitHub, clicking the Issues tab, and immediately feeling overwhelmed. The ecosystem is massive, and while hundreds of maintainers out there are actively asking for help, finding those rare "beginner-friendly" issues requires sifting through mountains of bugs and features that require deep domain knowledge.
I realized developers shouldn't have to write custom GitHub API queries or dig through unrelated repositories just to make their first Pull Request.
That’s exactly why I built GoodFirstGo.
What is GoodFirstGo?
GoodFirstGo is a CLI tool built entirely in Go that brings the perfect open-source issues directly to your terminal.
Instead of mindlessly browsing GitHub, you tell the CLI what language you want to work in, and it hands you a curated list of active repositories searching for help with the good-first-issue label.
Key Features Under the Hood
1.Smart Language Filtering: Want to practice your Python? Rust? Go? Just pass a --language flag.
2.Repository Health Filters: Filter out dead projects by mandating a minimum number of stars (--stars 100).
3.Recency: Nobody wants to comment on an issue from 2008. The --age flag ensures you're only looking at issues created recently, this week, or this month.
- Mode: This is my favorite part. By passing the
--learningflag, the CLI will output specialized tutorials and resources tailored to the specific language of the issue you are about to tackle!
Seeing it in Action
Because GoodFirstGo compiles down to a single binary, you don't need any complex runtimes or dependencies to use it. If you have Go installed on your machine, getting started takes ten seconds:
bash
go install github.com/odingaval/GoodFirstGo/cmd/goodfirstgo@latest
Once installed globally, you can query GitHub instantly. Let's say I want to find a beginner-friendly Go issue in a repository that has at least 500 stars, and I want to see learning resources for Go before I dive in.
I just type:
bash
goodfirstgo --language go --stars 500 --learning --limit 5
Instantly, I get a clean UI output of 5 high-quality repositories looking for help, right in my terminal window. Add a Github Token to your environment, and it bypasses rate limits entirely.
Why build a CLI instead of a website?
Modern web apps are great, but the Terminal is where developers live. By keeping the tool inside the CLI environment, you can search for issues, clone the resulting repository, and open your IDE without your hands ever leaving the keyboard.
Plus, writing a CLI in Go is just incredibly fun. It leverages Go's standard net/http efficiently alongside Cobra for powerful, responsive shell commands.
Looking to Contribute?
The absolute best part about GoodFirstGo? Because it is a tool explicitly designed to get beginners into open-source software, the project itself is heavily monitored for first-time contributors!
If you've never made an open-source contribution before, cloning the repository and adding a small feature to GoodFirstGo is the perfect place to start.
Check out the source code, download the latest binary, or star the repository here: 👉 github.com/odingaval/GoodFirstGo
Let me know what your first Pull Request ends up being!
Top comments (0)