mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Copy: pare product claims to what we can certify, cut rule-of-three cadence, record arch 10 §10
This commit is contained in:
@@ -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’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’s import / export buttons to move your library between devices.
|
||||
</li>
|
||||
|
||||
@@ -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
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user