A weekly-refreshed hub of open-source issues, with a leaderboard for contributors who close them.
Find an issue. Submit a PR. Earn points. Climb the leaderboard.
Opt in once, with one form. Nothing about you is tracked until you do.
New here? The homepage matches you with one unclaimed issue in your favorite language in 2 clicks, plus a step-by-step PR walkthrough. Try it →
The arena levels up. Every contribution adds to a shared pool of points. When the pool crosses a threshold, more issues unlock for everyone, every week. We're all building this together.
Updated hourly. Top 10 all-time contributors.
| Position | Contributor | Points | Rank |
|---|---|---|---|
| — | No contributions yet — be the first! | — | — |
In case of a tie, contributors are listed alphabetically by GitHub username.
View the full leaderboard on the website →
Contributors whose PRs were merged this week, regardless of leaderboard position.
No merged contributions yet this week.
🙂 Good First Issues (20)
🪲 Bug Fixes (14)
😓 Hard Issues (10)
Browse all issues on the website →
💡 How It Works
Every Friday at 17:00 UTC, a GitHub Action automatically rebuilds a fresh pool of ~250 active open-source repositories and pulls new issues from them. Issues are labeled as Good First Issues, Bugs, or Hard Issues. The number of issues pulled per category grows with the Arena Level, so collective progress unlocks more weekly issues for everyone.
Every hour, another action scans listed issues. If you have joined the arena and you open a PR that references one, that PR is tracked; when it merges, you automatically earn points — feeding both your personal rank and the shared Arena Level. If you also asked for a personal Discussion thread, the arena opens it within ~1 hour of spotting your first PR, and every later status update (merges, points, rank-ups) is posted there as a comment. Level-ups are announced in the Arena Milestones discussion.
Contributions are detected via GitHub's public metadata, but the arena only ever looks at people who asked it to — see Joining the Arena.
🎟️ Joining the Arena
The arena is opt-in. Until you submit the Join the Arena form, nothing about you enters it: your pull requests are ignored, your username never appears on the leaderboard or in the statistics, and no Discussion ever mentions you.
There is no account and no password. The form is the sign-up: a bot reads your answers, stores them in .arena_state/preferences.json, and closes the issue right away.
The form asks for two separate permissions:
| Permission | Required | What it means |
|---|---|---|
| Show my username on the public leaderboard and statistics | Yes | Your username, points and rank become part of the public standings. This is the arena; without it there is nothing to join. |
| Create my personal arena update discussion | No | One Discussion thread, opened when your first qualifying PR is spotted, mentioning you. Every later merge, rank-up and status change is posted there as a comment. Leave it unchecked to earn points with zero mentions and zero notifications. |
Nothing happens the moment you join. The arena starts reacting to you the first time you open a pull request that closes an arena issue.
Changing your mind. Submit the join form again to update your choices — unchecking the discussion box deletes the thread. To be removed entirely, submit Leave the Arena: your entry, points, contribution history and Discussion thread are all erased. Your pull requests are untouched either way — they live in the upstream repositories and stay merged.
📖 Rules & Point System
- Only contributors who joined the arena are tracked or credited
- You have 7 days from when an issue is listed (Friday 17:00 UTC) to open a PR
- Issues with a PR are tracked for up to 28 weeks to allow maintainer review time
- Issues with no PR after 7 days are dropped from tracking
- If your PR closes the issue within the tracking window, you earn points
- Your PR must reference the issue via a closing keyword (
fixes #N,closes #N,resolves #N) or be linked through GitHub's sidebar — the automation detects both - If multiple PRs reference the same issue, only the one that closes it earns points
- An issue claimed by a PR shows as 🟡 PR Proposed whether or not its author is in the arena, so nobody duplicates work
| Issue Type | Points |
|---|---|
| Good First Issue | 1 pt |
| Bug Fix | 2 pts |
| Hard Issue | 4 pts |
Status indicators: 🟢 Open — no PRs yet · 🟡 PR Proposed — an open PR references this issue · 🔴 Closed — resolved or expired
Each point grows your personal rank and the shared Arena Level — see the dedicated section below.
Spread the word: if you'd like to help the arena grow, feel free to add this at the end of your PR description:
I found this issue through [Weekly Issue Arena](https://github.com/claudiotancredi/weekly-issue-arena), a gamified hub that publishes open-source issues weekly.
Completely optional — your contribution speaks for itself either way.
| Rank | Badge | Points Required |
|---|---|---|
| Hello World Engineer | ![]() |
0–99 pts |
| Bug Slayer | ![]() |
100–499 pts |
| Mr. Robot | ![]() |
500+ pts |
🏛️ Arena Level
Every point earned by every contributor adds to a shared pool. When the pool crosses a threshold, the arena levels up and the weekly issue quota grows by +1 issue per category. The arena starts at Level 0 with up to 44 issues per week and reaches Level 10 at up to 74 issues per week. Actual counts may be lower if not enough matching issues are found across the tracked repos.
The current state is shown live on the home page and as the static SVG bar at the top of this README. Level-ups are announced in the Arena Milestones discussion.
| Level | Threshold | GFI | Bug | Hard | Total |
|---|---|---|---|---|---|
| 0 | 0 pts | 20 | 14 | 10 | 44 |
| 1 | 25 pts | 21 | 15 | 11 | 47 |
| 2 | 75 pts | 22 | 16 | 12 | 50 |
| 3 | 150 pts | 23 | 17 | 13 | 53 |
| 4 | 275 pts | 24 | 18 | 14 | 56 |
| 5 | 450 pts | 25 | 19 | 15 | 59 |
| 6 | 700 pts | 26 | 20 | 16 | 62 |
| 7 | 1050 pts | 27 | 21 | 17 | 65 |
| 8 | 1500 pts | 28 | 22 | 18 | 68 |
| 9 | 2100 pts | 29 | 23 | 19 | 71 |
| 10 | 3000 pts | 30 | 24 | 20 | 74 |
Thresholds and bonuses live in config/arena_levels.json.
🙋 FAQ
Q: My PR was merged but I didn't get points.
First, check that you joined the arena — PRs from people who have not joined are not tracked, and joining does not apply retroactively to a PR that already merged. Second, make sure your PR references the issue — either via a closing keyword (fixes #N, closes #N, resolves #N) in the PR body, or by linking the issue through GitHub's sidebar. The automation detects both. If both are true, open a thread in Discussions.
Q: Can I request a specific repo to be added?
The pool is rebuilt automatically each week from the GitHub Search API, so any actively maintained repo with good first issue or help wanted labels is likely to appear on its own. For a guaranteed spot, edit config/anchor_repos.yml and open a PR.
Q: What is the Arena Level and how does it grow? Every point earned by every contributor adds to a shared pool. When the pool crosses a threshold, the arena levels up and the weekly issue quota grows by one issue per category — so each level unlocks more opportunities for everyone. See the Arena Level section above for the full level table.
Q: What if I contributed without knowing about the Arena? Then nothing happened, by design. The arena does not track, name or notify anyone who has not opted in — it will not turn up in your notifications uninvited. If you like the idea, join and your next PR will count. Past PRs are not credited retroactively.
Q: How do I stop the notifications, or leave entirely? Every arena Discussion has an Unsubscribe button in its sidebar — that alone stops the notifications while keeping your points. To turn the thread off for good, submit the join form again with the discussion box unchecked and the thread is deleted. To remove yourself completely, use Leave the Arena: your entry, points, history and thread are all erased.
Q: How is this automated?
Via GitHub Actions + GitHub REST API. See .github/workflows/ for the full scripts.
🔗 Resources for First-Time Contributors
- How to contribute to open source (GitHub Docs)
- first-contributions — hands-on beginner guide
- goodfirstissue.dev — more issue discovery
🗂️ Tracked Issue Pool
The weekly pool of 250 repos is built fresh every Friday by scripts/fetch_repos.py:
- 50 always-included anchor repos: see
config/anchor_repos.yml - ~200 dynamically discovered repos via GitHub Search API (topic-aware queries + trending newcomers)
To suggest a guaranteed-included anchor repo, open a PR editing config/anchor_repos.yml. Any other actively maintained repo will likely be picked up automatically.
🫂 Contributing to the Arena
- 🎟️ Join the Arena — opt in so your PRs count
- 💬 Start a Discussion — ideas, questions, edge cases
- 🪲 File an Issue — bugs in the automation, feature requests, rule suggestions
- 📦 Open a PR — fix something, add an anchor repo, improve the scripts
MIT — see LICENSE


