# GitHub Radar **GitHub Radar** is a free, open source (MIT) dashboard that keeps every open GitHub issue and pull request across the users, organizations and repositories you care about on one page. I built it to track my own projects (`dsebastien`, `knowii-oss`, `DeveloPassion`) without hopping between dozens of repositories, but it is generic: it starts empty and anyone can point it at their own sources. - **Website**: https://ghradar.dsebastien.net (custom domain; `ghradar` is a DNS-only CNAME to `dsebastien.github.io` on Cloudflare, the build ships `public/CNAME`) - **Listed on**: [[Maintain Tools Website (Activity)|tools.dsebastien.net]] under Utilities - **Source code**: https://github.com/dsebastien/github-radar (deploys to GitHub Pages on every push to `main`) - **Local clone**: `$WKS/github-radar` (see [[Working on my repositories (Process)]]) - **My preset**: https://ghradar.dsebastien.net/?sources=user:dsebastien,org:knowii-oss,org:developassion ## What it does - **Sources**: any mix of GitHub users, organizations and single repositories. Paste a login, `org:name`, `owner/repo` or a GitHub URL. Sources are saved in the browser and can be shared as a `?sources=` URL preset. - **Optional login** with a fine-grained personal access token: private repositories, a much higher API rate limit, and automatic inclusion of your own account and every organization you belong to. There is no server, so the token never leaves the browser except in requests to `api.github.com`. - **Filters that remember themselves**: full text (title, repo, `#number`, author, label), issue vs PR, open/closed, labels, repos, authors, assignees, draft PRs, and "mine" shortcuts (assigned to me, by me, involved). - **Needs-attention signals**: stale (30+ days idle), dormant (90+ days), unlabeled, unassigned, draft. - **Sort and group** by activity, creation date, discussion or title; group by repository or author. - **Repo menu** (⧉ next to any repository name: cards, item panel, repo group headers, repo sources) copies the repo URL, the HTTPS clone URL or the SSH clone URL, or opens the repo on GitHub. - **Actions when logged in**, from an inline drawer showing the rendered body and comments: 👍 upvote, comment, add/remove labels, assign/unassign myself, close/reopen (with confirmation). - **Fast**: the last result set is cached locally and painted instantly; refreshes are incremental (only what changed since the last fetch) and run in the background every 15 minutes by default. ## How it is built - TypeScript, React 19, Tailwind 4, Vite, Bun. Same tooling conventions as [[Obsidian Plugin Template (Bun)]]: Conventional Commits with commitlint, config-based Git hooks (`bun run setup`), Prettier, ESLint, `bun run validate`. - Design follows [[Knowii Brand Style]] and the web palette of [[Knowii Brand Colors]]. - Data comes from the GitHub Search API (`/search/issues`), chunked per source and split further (per source, then per type) when a query hits the 1000-result ceiling. Decisions are recorded as ADRs in the repository (`docs/adr/`), and the domain glossary lives in `CONTEXT.md`. - Matt Pocock's engineering skills are vendored in the repo (`.claude/skills/`) so AI sessions follow the same grilling, TDD and domain-modeling discipline. ## Limits - The GitHub Search API returns at most 1000 results per query and allows 10 searches per minute anonymously (30 with a token). The dashboard splits and paces queries, and tells you when a single source still exceeds the ceiling. - Login is token-based: a real "Log in with GitHub" OAuth button would need a small server-side proxy (not needed so far, see ADR 0001 in the repo). ## References - https://ghradar.dsebastien.net/ - https://github.com/dsebastien/github-radar - https://docs.github.com/en/rest/search/search#search-issues-and-pull-requests ## Related - [[GitHub Radar (Project)]] - [[Maintain my Open Source Projects (Activity)]] - [[Obsidian Plugins Maintenance (Activity)]] - [[Knowii Brand Style]] - [[Knowii Brand Colors]] - [[Working on my repositories (Process)]]