Star-history charts for Tangled repositories, a decentralized git platform built on the AT Protocol.
Enter a Tangled repo, get its star-growth chart, compare repos, and export or embed the result.
What it does#
- Hand-drawn (xkcd-style) D3 star-history chart
- Compare multiple repos on one chart
- Date and Timeline (days-since-first-star) modes, optional log scale
- One-click PNG and CSV export
- Embed a live SVG chart via the API server's
/svgendpoint
How stars are resolved#
Tangled has no such reverse lookup: a star is an AT-Proto record (sh.tangled.feed.star) stored in each starring user's own PDS. To answer "who starred repo X" we use the Constellation backlink index (constellation.microcosm.blue), and decode each star's timestamp from its record key (a TID).
Architecture#
frontend/: Vite + Preact SPA (static, hash routing) + D3 + Tailwind.backend/: Hono API server onDeno.serve; star history from a local SQLite store kept esh by a live Jetstream ingester, plus embeddable/svgcharts.shared/: chart rendering, the AT-Proto/Constellation client, and shared types.tangled/: static seed data:seeds.jsonfor the trending sweep, plusdata/(trending list + repo directory) used as the no-backend fallback.
Development#
Requires Deno.
deno task fmt # format (deno fmt)
deno task lint # lint (deno lint)
deno task check # fmt --check + lint
Run the app:
deno task dev:backend # Hono API on :8080 (SQLite + Jetstream ingester)
deno task dev:frontend # Vite dev server (Preact SPA)
deno task build:frontend # static build → frontend/dist
See CONTRIBUTING.md for the full workflow.
License#
AGPL-3.0-only (LICENSE).
Chart-rendering code derived from star-history remains under its original MIT terms, preserved in LICENSE-MIT; see NOTICE for the attribution.