Copy: pare product claims to what we can certify, cut rule-of-three cadence, record arch 10 §10

This commit is contained in:
2026-06-26 23:09:47 +03:00
parent c19857b0a7
commit 43d3b480d9
7 changed files with 92 additions and 35 deletions
+10 -10
View File
@@ -47,9 +47,8 @@ export function AboutModal() {
v<span className={styles.version}>{__APP_VERSION__}</span>
</p>
<p className={styles.body}>
A local-first workspace for authoring, organizing, and previewing Vega-Lite charts. Edit
JSON, see the chart update live, and keep a personal library of snippets with no
account, no server, and full offline support.
A local-first workspace for authoring and organizing Vega-Lite charts. Edit the JSON,
watch it render live, and keep a personal library of snippets.
</p>
</section>
@@ -74,17 +73,18 @@ export function AboutModal() {
<section className={styles.section}>
<h3 className={styles.heading}>Privacy</h3>
<p className={styles.body}>
Astrolabe runs entirely in your browser. Your snippets, datasets, and settings are stored
locally and never leave your machine.
Astrolabe runs in your browser. Your snippets, datasets, and settings are stored locally
on your device there&rsquo;s no server to send them to.
</p>
<ul className={styles.list}>
<li>No account, no sign-in, no server-side storage.</li>
<li>The app runs no analytics or tracking no cookies, no telemetry, no profiling.</li>
<li>No account or sign-in.</li>
<li>
The only outbound network requests are ones you create: URL-sourced datasets you add
yourself.
The app itself runs no analytics or tracking. Its host (Cloudflare) records standard,
aggregate traffic like any web server not your library or the charts you build, which
stay in your browser.
</li>
<li>After the first load, the app works fully offline.</li>
<li>The only outbound requests are ones you make: datasets you load from a URL.</li>
<li>After the first load, the app works offline.</li>
<li>
Use the header&rsquo;s import / export buttons to move your library between devices.
</li>
+2 -2
View File
@@ -137,8 +137,8 @@ export function Onboarding() {
<div className={styles.inner}>
<h2 className={styles.title}>Welcome to Astrolabe</h2>
<p className={styles.tagline}>
A local library for your Vega-Lite charts authored as JSON, rendered live, and kept on
your device.
A local library for your Vega-Lite charts write the spec as JSON, watch it render live,
and keep it all on your device.
</p>
<div className={styles.ctaRow}>
+4 -4
View File
@@ -1,10 +1,10 @@
/**
* Project feedback channel.
*
* There is no server and no tracker (see the About modal — no telemetry of any
* kind); feedback is a plain email the user composes and sends from their own
* client. The address is a Cloudflare Email Routing alias that forwards to the
* author, so it can be retired without exposing or churning a personal inbox.
* The app sends no telemetry of its own (see the About modal); feedback is a
* plain email the user composes and sends from their own client. The address is
* a Cloudflare Email Routing alias that forwards to the author, so it can be
* retired without exposing or churning a personal inbox.
*
* Shared by the Support modal and the About modal — a contact address is worth
* a single source of truth so the two surfaces can't drift.
+13 -15
View File
@@ -369,8 +369,7 @@ export function Landing(): ReactNode {
</h1>
<p>
Astrolabe is a local studio for Vega-Lite. Write a spec by hand or build one by
clicking, give it a theme, and keep all your charts in one library in the browser,
with no account and no server.
clicking, give it a theme, and keep all your charts in one searchable library.
</p>
<div className={styles.heroCta}>
<a className={`${styles.btn} ${styles.btnPrimary}`} href="/app/">
@@ -399,8 +398,8 @@ export function Landing(): ReactNode {
</h2>
<p className={styles.capP}>
The editor is Monaco with the Vega-Lite schema loaded, so you get validation,
autocompletion, and inline docs without going online. Each chart keeps a draft and a
published version: edit the draft, publish when it's ready, revert when it isn't.
autocompletion, and inline docs without going online. Each chart keeps an editable
draft alongside a published version you can revert to.
</p>
<p className={styles.capP}>
If you'd rather not start from JSON, the builder works from the kind of chart you
@@ -426,7 +425,7 @@ export function Landing(): ReactNode {
<div className={styles.capText}>
<div className={styles.capEyebrow}>One library</div>
<h2 className={styles.capH}>
Every chart you make <b>stays</b>, with the data behind it.
Every chart you make is <b>saved</b>, with the data behind it.
</h2>
<p className={styles.capP}>
Store a dataset once and reference it by name from as many charts as you want. Rename
@@ -434,8 +433,8 @@ export function Landing(): ReactNode {
</p>
<p className={styles.capP}>
Load data by pasting CSV or JSON, or by fetching a URL. You can also lift inline data
out of a spec into a shared dataset. Search, sort, and duplicate as the collection
grows.
out of a spec into a shared dataset. Search and sort as the collection grows, and
duplicate a snippet to start a variant.
</p>
</div>
<div className={styles.shot}>
@@ -599,17 +598,16 @@ export function Landing(): ReactNode {
Your charts are <b>yours.</b>
</h2>
<p className={styles.creedLede}>
Astrolabe runs in your browser and stores everything locally — no account, no server.
What it produces is ordinary Vega-Lite JSON, so you can read it, edit it in other tools,
or keep it long after you've stopped using Astrolabe.
Astrolabe runs in your browser, and what it makes is ordinary Vega-Lite JSON read it,
edit it in other tools, or take it elsewhere whenever you want.
</p>
<div className={styles.creedGrid}>
<div>
<span className={styles.creedKey}>private</span>
<h3>Stays on your machine</h3>
<h3>Local to your browser</h3>
<p>
Charts, data, and themes are saved in your browser. Install it and it works with no
connection.
Charts, data, and themes are saved in this browser, and it keeps working offline
once installed.
</p>
</div>
<div>
@@ -624,8 +622,8 @@ export function Landing(): ReactNode {
<span className={styles.creedKey}>yours</span>
<h3>Set up your way</h3>
<p>
Two ways to author, your own fonts and themes, your own library. Arrange it to match
how you work.
Author by hand or by clicking, with your own fonts and themes. Arrange the library
to match how you work.
</p>
</div>
</div>