A Bun + Vite + React + Base UI experiment for exploring a GitHub org as small stateful square grids.
Live app: https://rho-ricon.github.io/github-grid-explorer-poc/
bun install
bun run devOpen http://localhost:5173/.
- Shows a GitHub org as separate grids for repos, teams, and members.
- Uses square color/state to make dense data scannable.
- Hover/focus a square to see a Base UI
Popoverpreview. - Click a square to drill into full-screen Base UI
Drawerviews. - Right-click a square for Base UI
ContextMenuactions. - Drag a member onto a repo for non-mutating relationship actions.
- Drag a repo onto another repo for a side-by-side operational comparison.
- Carry repos, teams, and members in a floating pouch across drawer views.
- Search filters all grids on the current screen.
- Caches GitHub API responses in browser storage.
- Repos — latest GitHub Actions state colors each repo square.
- Teams — permission-colored squares, with secret/large/empty/nested markers. Click to view team members. Requires a token with org/member read access.
- Members — avatar squares with bot/site-admin markers for public org members, or token-visible members.
- Workflow Runs — latest GitHub Actions runs by status/conclusion.
- Issues — open/closed, stale, and busy states.
- Pull Requests — open/closed, stale, and busy states.
- Releases — GitHub Releases, including stable/prerelease/draft/old states.
- Tags — git tags, with version tags highlighted.
- Members — team members as a searchable grid.
The app works without a token, but unauthenticated GitHub API requests are heavily rate-limited and cannot read private/org-restricted data.
Use the Token button in the app to paste a fine-grained GitHub token. The token is:
- stored in memory by default,
- optionally remembered in this browser's
localStorage, - cleared with the Clear button.
The token popover includes a link to GitHub's fine-grained token form prefilled for a short-lived read-only token for KnickKnackLabs.
In dev, requests go through Vite's local /github/* proxy when no browser token is set. The proxy uses gh auth token server-side if available, so the token is not exposed to browser code.
The proxy is local-only and rejects non-local requests.
On GitHub Pages, the app calls https://api.github.com directly. If a user provides a token, it is sent from that user's browser to GitHub.
No token is committed, built into the app, or available to GitHub Pages.
bun run lint
bun run test
bun run buildRun all three with:
bun run checkUse bun run format to apply Biome formatting/import organization.
bun run buildFor GitHub Pages, the deploy workflow builds with:
GITHUB_PAGES=true bun run buildsrc/components/— generic screen/grid primitives.src/features/github/— GitHub data, auth, search, previews, legends, context menus, and drawer screens.src/styles.scssandsrc/styles/— Sass entrypoint and partials for layout, grids, overlays, and shared tokens.src/utils/— small cache/clipboard helpers..github/workflows/deploy.yml— GitHub Pages deployment.
- Use Base UI
Meterfor CI success rate, milestone progress, or activity/freshness. - Expand non-mutating drag/drop gestures, such as pinning arbitrary squares or comparing richer repo detail data.