Skip to content

Kitsune-Den/Tended

Repository files navigation

Tended

A foxfire-themed personal GitHub dashboard. Standalone, static, single-user. The whole thing is one Astro page that fetches your GitHub data in the browser using a personal access token you paste once.

+-----------------------------+
|  Tended                     |
|  ~ a board for the Skulk ~  |
+-----------------------------+
|  identity  |  standing bar  |
|  tended (52-week heatmap)   |
|  vigil (streak pips)        |
|  the watch (issues)         |
|  recent inscriptions        |
|  the procession             |
|  [1][2][3][4][5][6][7][8][9][0]
+-----------------------------+

No server, no OAuth, no telemetry. The token lives in localStorage on your device only. To revoke access, delete the token in your GitHub settings or click "forget" in the dashboard.

Local dev

npm install
npm run dev

Then open http://localhost:4321 and paste a token.

Token setup

Tended needs a classic GitHub PAT with repo + read:user scopes (or public_repo + read:user if all your work is public).

The setup gate links you straight to a GitHub form with the scopes pre-filled: github.com/settings/tokens/new?description=Tended&scopes=repo,read:user

90-day expiration is fine for personal use ~ Tended will surface a clear auth error and re-prompt when the token expires.

What it shows

Panel What's actually in there
Identity Avatar, login, auto-flair title, "standing" derived from total contributions
Tended The 52-week contribution heatmap, foxfire-tinted by intensity
Vigil Current streak as a 30-day pip strip; longest streak; last broken date
The Watch Open issues assigned to you, sorted by recency, color-coded by labels
Recent inscriptions Your last ~8 commits, flattened from GitHub's PushEvent stream
The procession What people you follow + repos you watch have been doing lately
Hotbar (1~0) Quick links to common GitHub views; keyboard hotkeys bump the slot

The vocabulary is intentional: vigil instead of streak, tended instead of contributions, inscriptions instead of commits, watch instead of issues, procession instead of activity feed. None of it is combat-coded.

Build & deploy

npm run build

Outputs to dist/. Static. Drop it into any web root ~ no Node, no runtime needed on the host.

CI is wired up in .github/workflows/deploy.yml: every push to main that touches src/, public/, or build config rebuilds and rsyncs dist/ over SSH to the DreamHost VPS.

Required repo secret:

  • DH_SSH_KEY ~ private key matching the deploy account on vps32678.dreamhostps.com

Before the first deploy: create the subdomain tended.kitsuneden.net in the DreamHost panel and confirm DH_USER / DH_PATH in the workflow match the user/path the panel provisioned.

Stack

  • Astro 5 (static output)
  • Vanilla TypeScript in client scripts (no framework runtime)
  • GitHub GraphQL API for the rich viewer query
  • GitHub REST events API for the procession + inscriptions
  • Cormorant Garamond webfont for the serif accents (matches kitsunebi)
  • Foxfire palette borrowed from kitsunebi's Layout.astro

Roadmap

  • Multi-account switching (drop a select for which login to view)
  • Cache last successful render to localStorage so cold loads aren't blank
  • Top-language detection for richer identity flair
  • Optional "shared dashboard" mode for orgs (reads org repos, no token needed for public)
  • Keyboard shortcuts beyond 1~0 (g+i for issues, g+p for PRs, etc.)

License

MIT.

About

A foxfire-themed personal GitHub dashboard. Standalone, static, single-user.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors