# Astrolabe — Product Specification A UX/behavioral specification of **Astrolabe**, a browser-based snippet manager for [Vega-Lite](https://vega.github.io/vega-lite/) visualizations. It describes *what the app does* from the user's perspective so it can be recreated on any web/HTML/TS stack. ## How to read this spec - Start with [00 · Product Overview](00-product-overview.md) for orientation and the glossary. - Each subsequent file is one feature area and can be read on its own; they cross-reference each other by title. - Every section describes intended behavior plus testable acceptance points ("The user can…", "When X, the system…"). ## What this spec deliberately omits - **Implementation.** No frameworks, libraries, languages, storage technologies, or code architecture are prescribed. Storage is described behaviorally (e.g. "persists locally across sessions", capacity tiers), not by naming a technology. - **Visual design.** Structural layout (panes, regions, modal vs inline, where controls live) is specified; concrete styling, colors, and the app's visual aesthetic are left to the implementer. - **Domain exception.** Vega-Lite and its vocabulary (specs, marks, encoding channels, field types) and data-format names (JSON, CSV, TSV, TopoJSON) *are* named — they are the product domain, not implementation choices. ## Contents | # | Section | |---|---------| | 00 | [Product Overview](00-product-overview.md) | | 01 | [Application Shell & Navigation](01-application-shell.md) | | 02 | [Snippet Library](02-snippet-library.md) | | 03 | [Spec Editor & Draft/Published Workflow](03-editor-and-drafts.md) | | 04 | [Live Preview](04-live-preview.md) | | 05 | [Datasets](05-datasets.md) | | 06 | [Chart Builder](06-chart-builder.md) | | 07 | [Settings](07-settings.md) | | 08 | [Import & Export](08-import-export.md) | | 09 | [Data Model & Persistence](09-data-model.md) | | 10 | [Non-Functional Requirements](10-non-functional.md) |