Add a discoverable '+ Add transform' / '+ filter/aggregate/...' CodeLens in the spec editor that scaffolds field-typed transform[] steps, with a type-to-filter completion on the same catalog as an accelerator. New pure core (spec-data-transforms): step-slot and view-site classification, the field-typed catalog, and comma affixing. Deliberately the one home the schema leaves bare — inline channel transforms and the transform key stay with the JSON schema. Rename the composition toolbar menu Transform -> Compose so it reads distinctly from a data transform. Deferred (recorded at their sites): extract a shared cursor-lens skeleton across the two installers; a shared completion replace-range helper (now 3 sites); params scaffolding as the sibling feature.
Astrolabe
A browser-based snippet manager for 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 spec-driven rebuild on an architecture adapted from its sibling project Syto. The authoritative behavioral contract lives in
docs/spec/. See SOUL.md for the philosophy and docs/IMPLEMENTATION-PLAN.md for the build sequence.
Stack
Vite · TypeScript · React + Zustand · Monaco · Vega-Lite + vega-embed · IndexedDB · PWA (offline + installable).
Develop
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/ and the architecture patterns in
docs/architecture/.
License
TBD.