eratic
Four small static sites — a place instead of a profile.
Astro 7 · self-hosted fonts · no JavaScript unless an article asks for it ·
no analytics, no cookies, no third-party requests · RSS and JSON Feed for each
section.
Getting started
npm install
npm run dev:blog # http://localhost:4321
Commands
npm run dev:blog # also dev:home, dev:fav, dev:io
npm run build # all four, after checking photos for GPS
npm run check # TypeScript + Astro diagnostics
npm run deploy # build, upload, go live, verify
./deploy/rollback.sh # back to the previous release
Where things are
packages/core/ design system: tokens, layouts, components, feeds
sites/{home,blog,fav,io} one Astro project each
deploy/ bootstrap, deploy, rollback, web server config
scripts/ photo GPS check, EXIF strip, build pruning
docs/ the runbooks
Identity, domains and media resolution: packages/core/src/config.ts.
Every design value: packages/core/src/styles/tokens.css.
Documentation
CLAUDE.md is the operating manual — exact frontmatter for
every content type, the commands, and the mistakes worth not repeating. Start
there.
|
|
| 01 — Authoring |
the publishing workflow |
| 02 — Design system |
tokens, per-article theming, components |
| 03 — Deploy |
the server, releases, rollback, backups |
| 04 — DNS and TLS |
domains, records, certificates |
| 05 — Media |
photographs, video, the IPFS path |
| 06 — Privacy |
what is guaranteed, and how it is enforced |
| 07 — Troubleshooting |
when something is wrong |
Publishing, briefly
Add a Markdown file, run npm run deploy. Drafts and future-dated entries stay
out of production automatically, so there is no staging server and no publish
button.
The build refuses to run if any photograph still carries GPS coordinates.