A personal GitHub dashboard that lives in your menubar. One glance, everything you need.
I got tired of context-switching between GitHub tabs. PRs here, issues there, notifications somewhere else. Every time I wanted to check "what needs my attention?" I'd open 4 tabs and lose 5 minutes.
So I built this. A single window that shows:
- PRs - yours, assigned, review requested, mentioned
- Issues - yours, assigned, mentioned
- Repos - owned + contributed, sorted by activity
- Activity - contribution graph, stars, forks, recent events
2-panel layout with resizable sections:
- Left - Stats, contribution calendar, activity feed (mine/others), repositories (mine/contributed), split into two resizable panes
- Right - PR list and issue list in resizable panes, click into detail view with full markdown body, comments, reviews
All lists use progressive rendering (IntersectionObserver). Only visible items are rendered, more load on scroll.
PRs show diff stats, reviewers, approval status, branch info. Issues show reactions, linked branches, task progress. Repos show stars, forks, language, topics, visibility.
Privacy toggle (lock icon) hides private repos, PRs, and issues across all panels. Useful for screenshots and livestreams.
Light/dark theme. Persists to localStorage.
3 parallel GraphQL queries + REST events, not one blocking call:
- Viewer - repos, stats, calendar
- PR searches - created, review requested, assigned, mentioned
- Issue searches - created, assigned, mentioned
Progressive rendering: viewer data (left panel) renders as soon as it arrives. PR/issue data fills in when searches complete. Activity loads last in the background.
- Stale-while-revalidate - cached data renders instantly, fresh data loads behind the scenes
- localStorage persistence - survives app restarts, instant cold start
- 30-minute cache TTL - subsequent opens within window are instant (no network)
- Username persisted - events query fires in parallel on first load instead of waiting for viewer response
- Tauri v2 - native wrapper, ~5MB binary
- React 19 - UI
- Vite 7 - build
- Tailwind v4 - styling
- shadcn/ui - scroll area, avatar, badge, button
- react-resizable-panels - draggable panel layout
# install deps
bun install
# dev mode
bun run tauri dev
# build
bun run tauri buildUses gh auth token to get a token at runtime. No env vars needed.
MIT
