Files
astrolabe/README.md
T

55 lines
2.3 KiB
Markdown

# Astrolabe
A browser-based **snippet manager for [Vega-Lite](https://vega.github.io/vega-lite/)
visualizations**. Author chart specs as JSON, watch them render live, and keep a personal,
searchable library — local, offline-capable, no account.
> Astrolabe is a rebuild on an architecture adapted from its sibling project Syto. The
> behavioral record lives in [`docs/spec/`](docs/spec/) — the code leads; the spec is
> kept rewritten to match.
> See [SOUL.md](SOUL.md) for the philosophy and [docs/IMPLEMENTATION-PLAN.md](docs/IMPLEMENTATION-PLAN.md)
> for the build sequence.
## Stack
Vite · TypeScript · React + Zustand · Monaco · Vega-Lite + vega-embed · IndexedDB · PWA (offline + installable).
## Develop
```bash
npm install
npm run dev # dev server
npm run build # typecheck + production build (+ service worker)
npm run typecheck
npm test # Vitest
```
## What it does
- **Editor + live preview** — write Vega-Lite specs as JSON in Monaco with schema-aware
validation and autocomplete; the chart re-renders as you type.
- **Snippet library** — save, search, tag, and organize specs. Each snippet carries a stable
published version plus a separate editable draft, so you can tinker without losing a
known-good copy.
- **Reusable datasets** — store data once (inline, or fetched once from a URL and snapshotted)
and reference it by name from many snippets.
- **Chart Builder** — a no-JSON on-ramp that generates a spec from field, mark, and encoding
choices. The JSON stays the source of truth and is always editable.
- **Theming & fonts** — custom chart themes with a visual Theme Builder, a curated font roster,
and your own uploaded font faces.
- **Local-first** — your library lives in the browser (IndexedDB); offline-capable and installable
(PWA), with import/export for backup and transfer. No account, no server, no AI — with no
backend to send it to, your library stays on your device, so it's safe for confidential work
from the first chart.
## Status
Active development, **pre-1.0** and not yet publicly released — well past the initial milestones
and usable day to day; the first public release will be `1.0.0`. Behavior is specified in
[`docs/spec/`](docs/spec/) and the architecture patterns in
[`docs/architecture/`](docs/architecture/00-overview.md).
## License
TBD.