Static activity dashboard for a set of GitHub repos. Renders commits, PRs,
issues, and releases as a git log --oneline-style timeline.
Live at heartbeat.opensats.org
A GitHub Action fetches data via the GitHub GraphQL API at build time and
writes public/data/events.json. The browser never talks to GitHub directly,
so visitors don't burn any rate-limit budget.
Today only GitHub is wired up. The plan is to also pull from Gitea, GitLab, and nostr-native hosts like gitworkshop.dev.
Requires Node 22+.
npm install
export GITHUB_TOKEN=ghp_yourtoken # any PAT; no scopes needed for public repos
npm run fetch # writes public/data/events.json
npm run devEach repos*.yml file at the project root lists tracked repos; all matching
files are merged and deduplicated.
repos:
- owner/repo-1
- owner/repo-2Knobs (time window, page sizes) live at the top of
scripts/fetch.ts.
Built for Vercel. Set GITHUB_TOKEN as an env var; vercel-build runs
npm run fetch && npm run build. For periodic refreshes, save a Vercel
Deploy Hook URL as the VERCEL_DEPLOY_HOOK_URL repo secret and the included
refresh.yml workflow pings it every 6 hours.