A GitHub Pages SPA that aggregates your GitHub activity and the activity of others in your own repositories — accumulating GitHub's short-window data (events: ~90 days, traffic: 14 days) into permanent local history in your browser.
See docs/design.md and the ADRs for the design decisions.
- GitHub OAuth App (device flow): create at https://github.com/settings/developers with any homepage URL. Copy the Client ID.
- Cloudflare Worker (already deployed): the auth proxy lives at
https://github-dashboard-auth.markus-ackermann.workers.dev. To redeploy after changes:cd worker npx wrangler deploy - Configure the SPA: on first launch, before signing in, run in the browser console:
localStorage.setItem('ghdash-client-id', '<your-client-id>') localStorage.setItem('ghdash-worker-url', 'https://github-dashboard-auth.<your-subdomain>.workers.dev')
- Pages: enable GitHub Pages with source "GitHub Actions" (repo Settings → Pages). The deploy workflow runs on every push to
main.
npm install
npm run dev
npm test
npm run buildvite.config.ts sets base: '/github-dashboard/' to match the Pages URL
https://saigyo.github.io/github-dashboard/.
- auth/ — OAuth device flow (worker-proxied), token in localStorage
- github/ — typed REST + batched GraphQL client
- sync/ — sync engine: repos → events → traffic snapshots → counters; runs on load and every 5 min
- db/ — Dexie/IndexedDB: repos, raw events, traffic snapshots, syncState
- ui/ — Overview, My Activity, My Repos, Repo detail; state in URL hash
- worker/ — stateless Cloudflare Worker CORS proxy for the two device-flow endpoints