Finding meaningful open source issues is harder than it should be.
Contrib.FYI helps you find open source issues on GitHub while reducing the time wasted opening issues that are already being worked on.
github-help-wanted offered an excellent experience. Browsing issues in chronological order made it easy to discover projects I would never have found otherwise.
Unfortunately, the service is no longer available.
While rebuilding that experience, I noticed another problem.
Finding issues is easy.
Deciding whether to work on them is expensive.
Many issues already have:
- ongoing discussions
- linked pull requests
- contributors actively working on them
Opening those issues only to realize this costs time and attention. Contrib.FYI keeps the discovery experience β but adds signals to reduce wasted effort before you click.
Contrib.FYI is designed to preserve one specific experience: serendipitous discovery.
Browsing issues in chronological order creates opportunities to stumble upon projects you were never explicitly looking for. This kind of accidental discovery is difficult to achieve with static, curated lists that surface the same popular repositories repeatedly.
Contrib.FYI embraces this idea through a dynamic search approach, using live GitHub API data to reflect what is happening right now β while adding signals that help you decide whether an issue is worth your time.
In practice, this means:
- Uses live GitHub API data
- Surfaces issues in real time
- Preserves chronological discovery
- Adds signals to reduce wasted effort
This is not about finding more issues. It is about finding better candidates to spend your time on.
This design intentionally trades optimization for exploration.
Contrib.FYI directly queries the GitHub API. What you see reflects what is happening right now, not a cached or curated snapshot.
This keeps discovery fresh and avoids the same well-known repositories dominating results.
You can freely combine filters such as:
- Programming language
- Issue labels (e.g.
help wanted,good first issue) - Excluded keywords
This allows both broad exploration and focused searching.
By providing your own GitHub Personal Access Token (PAT), you unlock higher rate limits and additional signals that help reduce wasted effort.
- API rate limit increases from 60 β 5,000 requests/hour
- Your token is stored only in your browserβs
localStorage - The token is never sent to any external server
These features exist for one purpose: to avoid spending time on issues that are already being handled.
- Repository star count
- Focus on projects that match your desired scale
- Primary programming language
- Avoid skill mismatches
- No comments filter
- Reduce the chance of ongoing discussion
- No linked PRs filter
- Avoid issues already being worked on
Together, these signals help you make a decision before opening the issue.
Interesting issues can be saved locally to your My Picks list.
This allows you to:
- collect candidates
- compare later
- return when you actually have time to work on them
All data is stored locally in your browser.
| Feature | Contrib.FYI | Other Curated Sites |
|---|---|---|
| Search Strategy | Dynamic (Live GitHub Data) | Static (Manual / Cron-based) |
| Discovery Style | Chronological, serendipitous | Popular repositories first |
| Niche Languages | Any | Major languages only |
| Decision Signals | Stars, PRs, comments, language | Rarely available |
| Save Issues | Local storage (My Picks) | Rarely supported |
If you want to run this project locally or contribute to its development, follow the steps below.
- Node.js 20+ or compatible package manager
- (Optional) GitHub Personal Access Token for higher rate limits
- Clone the repository:
git clone https://github.com/contrib-fyi/contrib-fyi.git
cd contrib-fyi/web- Install dependencies:
npm install- (Optional) Configure environment variables:
cp .env.local.example .env.local
# NEXT_PUBLIC_BASE_PATH=/your/base/path
# NEXT_OUTPUT_MODE=export
# NEXT_PUBLIC_GITHUB_TOKEN=ghp_xxxxxxxxxxxx- Start the development server:
npm run dev- Open http://localhost:3000 in your browser
npm run devβ start the development servernpm run buildβ create a production buildnpm run startβ serve the production buildnpm run lintβ run ESLintnpm run formatβ format with Prettiernpm run typecheckβ run TypeScript without emitting files
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.