Astrolabe is a lightweight, browser-based snippet manager for Vega-Lite visualizations.
- It's designed to help you quickly create, organize, and iterate on visualization specs without
+ It's designed to help you quickly create, organize, and iterate on visualization specs
+ without
the overhead of a full development environment.
Everything runs locally in your browserβno server, no signup, no data leaving your machine.
- Your snippets and datasets are stored using browser storage, so they persist across sessions.
- As a Progressive Web App, Astrolabe works fully offline after your first visit and can be installed
+ Your snippets and datasets are stored using browser storage, so they persist across
+ sessions.
+ As a Progressive Web App, Astrolabe works fully offline after your first visit and can be
+ installed
as a standalone application.
@@ -645,13 +720,19 @@
Key Features
-
Three-panel workspace β Snippet library, Monaco code editor with Vega-Lite schema validation, and live preview
-
Draft/published workflow β Experiment safely without losing your working version
-
Dataset library β Store and reuse datasets across multiple visualizations (supports JSON, CSV, TSV, TopoJSON)
-
Offline-capable β Works without internet connection after first visit; install as standalone app
+
Three-panel workspace β Snippet library, Monaco code editor with
+ Vega-Lite schema validation, and live preview
+
Draft/published workflow β Experiment safely without losing your
+ working version
+
Dataset library β Store and reuse datasets across multiple
+ visualizations (supports JSON, CSV, TSV, TopoJSON)
+
Offline-capable β Works without internet connection after first visit;
+ install as standalone app
Import/export β Back up your work or move it between browsers
-
Inline data extraction β Convert hardcoded data into reusable datasets
-
Search and sorting β Find snippets by name, comment, or spec content
+
Inline data extraction β Convert hardcoded data into reusable datasets
+
+
Search and sorting β Find snippets by name, comment, or spec content
+
@@ -661,19 +742,23 @@
1. Create a snippet
-
Click the "Create New Snippet" ghost card at the top of the snippet list. A sample Vega-Lite spec loads automatically.
+
Click the "Create New Snippet" ghost card at the top of the snippet list. A sample
+ Vega-Lite spec loads automatically.
2. Edit in the Draft view
-
Changes auto-save as you type. The preview updates automatically. Your published version stays safe until you're ready.
+
Changes auto-save as you type. The preview updates automatically. Your published
+ version stays safe until you're ready.
3. Publish when ready
-
Click "Publish" (or Cmd/Ctrl+S) to save your draft as the official version. Use "Revert" if you want to discard changes.
+
Click "Publish" (or Cmd/Ctrl+S) to save your draft as the official version. Use
+ "Revert" if you want to discard changes.
4. Organize with datasets
-
Open the Dataset Manager to create reusable datasets. Reference them in your specs using {"data": {"name": "dataset-name"}}.
+
Open the Dataset Manager to create reusable datasets. Reference them in your specs
+ using {"data": {"name": "dataset-name"}}.
@@ -712,14 +797,19 @@
Storage & Limits
- β οΈ Important: All data is stored in your browser's local storage. If you clear your browser cache or site data,
- your snippets and datasets will be permanently deleted. Regular exports are recommended as backups.
+ β οΈ Important: All data is stored in your browser's local storage. If you
+ clear your browser cache or site data,
+ your snippets and datasets will be permanently deleted. Regular exports are recommended as
+ backups.
-
Snippets β Stored in localStorage with a 5 MB limit (shared across all snippets). The storage monitor shows current usage.
-
Datasets β Stored in IndexedDB with effectively unlimited space (browser-dependent, typically 50 MB+).
-
Backup β Use Import/Export to save your work as JSON files. Datasets can be exported individually from the Dataset Manager.
+
Snippets β Stored in localStorage with a 5 MB limit (shared across all
+ snippets). The storage monitor shows current usage.
+
Datasets β Stored in IndexedDB with effectively unlimited space
+ (browser-dependent, typically 50 MB+).
+
Backup β Use Import/Export to save your work as JSON files. Datasets
+ can be exported individually from the Dataset Manager.
@@ -727,12 +817,18 @@
Tips & Tricks
-
Sort snippets β Use the sort buttons to organize by Modified, Created, Name, or Size. Click a button twice to reverse the sort order (β¬ becomes β¬).
-
Extract inline data β When editing a spec with inline data, click "Extract to Dataset" to create a reusable dataset automatically.
-
Dataset references β Astrolabe resolves dataset references at render time, so you can freely switch between inline and referenced data.
-
Search across specs β The search box looks inside snippet names, comments, and the spec content itself.
-
Linked datasets β The metadata panel shows which datasets a snippet uses, and the Dataset Manager shows which snippets reference each dataset.
-
URL datasets β Reference remote data by URL. Astrolabe fetches and caches it for preview, but the URL is what gets stored.
+
Sort snippets β Use the sort buttons to organize by Modified, Created,
+ Name, or Size. Click a button twice to reverse the sort order (β¬ becomes β¬).
+
Extract inline data β When editing a spec with inline data, click
+ "Extract to Dataset" to create a reusable dataset automatically.
+
Dataset references β Astrolabe resolves dataset references at render
+ time, so you can freely switch between inline and referenced data.
+
Search across specs β The search box looks inside snippet names,
+ comments, and the spec content itself.
+
Linked datasets β The metadata panel shows which datasets a snippet
+ uses, and the Dataset Manager shows which snippets reference each dataset.
+
URL datasets β Reference remote data by URL. Astrolabe fetches and
+ caches it for preview, but the URL is what gets stored.
@@ -743,17 +839,28 @@
Your data stays yours. Astrolabe is built with privacy as a core principle:
-
Local-first architecture β All snippets and datasets are stored in your browser (localStorage and IndexedDB). Nothing is sent to any server.
-
No accounts, no signup β There's no authentication system, no user profiles, no cloud sync. Your work exists only on your machine.
-
No cookies β Astrolabe doesn't use cookies or any persistent tracking identifiers.
-
Privacy-friendly analytics β We use GoatCounter (privacy-focused, GDPR-compliant) to track basic usage patterns like "snippet created" or "dataset exported." We collect zero personal information: no snippet names, no dataset content, no IP addresses, no user identifiers. Just aggregate counts to understand which features are used.
-
Data portability β Export all your snippets and datasets anytime as standard JSON/CSV/TSV files. No vendor lock-in.
+
Local-first architecture β All snippets and datasets are stored in your
+ browser (localStorage and IndexedDB). Nothing is sent to any server.
+
No accounts, no signup β There's no authentication system, no user
+ profiles, no cloud sync. Your work exists only on your machine.
+
No cookies β Astrolabe doesn't use cookies or any persistent tracking
+ identifiers.
+
Privacy-friendly analytics β We use GoatCounter (privacy-focused,
+ GDPR-compliant) to track basic usage patterns like "snippet created" or "dataset
+ exported." We collect zero personal information: no snippet names, no
+ dataset content, no IP addresses, no user identifiers. Just aggregate counts to
+ understand which features are used.
+
Data portability β Export all your snippets and datasets anytime as
+ standard JSON/CSV/TSV files. No vendor lock-in.
- What analytics we collect: Action types (e.g., "snippet-create", "dataset-export"), generic metadata (e.g., format types like JSON/CSV, counts like "5 snippets"). That's it.
+ What analytics we collect: Action types (e.g., "snippet-create",
+ "dataset-export"), generic metadata (e.g., format types like JSON/CSV, counts like "5
+ snippets"). That's it.
- What we DON'T collect: Snippet names, dataset names, actual data content, URLs, email addresses, or any personally identifiable information.
+ What we DON'T collect: Snippet names, dataset names, actual data content,
+ URLs, email addresses, or any personally identifiable information.
@@ -773,15 +880,18 @@
Why Donate?
- If you are reading this, you probably found Astrolabe to be useful enough to support its creators.
- It is a free open-source project built in Kyiv, Ukraine.
+ If you are reading this, you probably found Astrolabe to be useful enough to support its
+ creators.
+ It is a free open-source project built in Kyiv, Ukraine.
- This passion project of mine is possible because my relatives, friends, and colleagues took arms and joined Armed Forces
+ This passion project of mine is possible because my relatives, friends, and colleagues took
+ arms and joined Armed Forces
to defend their country and loved ones against Russian invasion.
- I feel deep gratitude to them, so I will humbly ask you to redirect your donations to the foundations - you'll find the links below.
+ I feel deep gratitude to them, so I will humbly ask you to redirect your donations to the
+ foundations - you'll find the links below.
-
- MacPaw Foundation - Founded by MacPaw (where I work). Started in 2016, shifted focus in 2022 to support the Defence Forces.
-
-
-
- KSE Foundation. Kyiv School of Economics (where I teach). Focuses on both education and humanitarian support for people and defenders
-
-
-
- Stand for Ukraine - Not a foundation, but an aggregator of reliable organizations.
- The list of fundraisers goes beyond military and covers recovery of veterans & victims of war, shelter for the refugees and many more.
-
+
+ MacPaw Foundation - Founded by MacPaw (where I work). Started
+ in 2016, shifted focus in 2022 to support the Defence Forces.
+
+
+
+ KSE Foundation. Kyiv School of Economics (where I teach).
+ Focuses on both education and humanitarian support for people and defenders
+
+
+
+ Stand for Ukraine - Not a foundation, but an aggregator of
+ reliable organizations.
+ The list of fundraisers goes beyond military and covers recovery of veterans &
+ victims of war, shelter for the refugees and many more.
+
+
@@ -875,8 +993,10 @@
-
-
+
+
@@ -904,21 +1024,24 @@
@@ -931,8 +1054,10 @@
-
-
+
+
Delay before visualization updates while typing
@@ -957,29 +1082,24 @@
-
+
- Tokens: yyyy (year), MM (month), dd (day), HH (24h), hh (12h), mm (min), ss (sec), a/A (am/pm)
+ Tokens: yyyy (year), MM (month), dd (day), HH (24h), hh (12h), mm (min), ss (sec), a/A
+ (am/pm)
- Apply
- Reset to Defaults
- Cancel
+ Apply
+ Reset to Defaults
+ Cancel