Colophon

How this site is put together, what keeps it honest, and the small "API of me" it exposes on top of the normal pages.

Stack

A static Astro site — content collections for writing and project write-ups, MDX for anything that needs a little more than prose, no client framework shipped unless a page actually needs interactivity (the /learn simulators are the one place it does). Static output means there's no server to keep patched, no database to back up, and no request path slower than a CDN edge cache. Deployed as a fully static site to Cloudflare Pages, no third-party analytics or trackers.

A mounted curriculum

The /learn section — lessons, glossary, simulators — isn't authored in this repo. It's a sibling curriculum, mounted in at build time as its own content collection. This site is the delivery surface; the curriculum is maintained independently and just gets pulled in on every build, the same way any other content collection does.

Deny-by-default publishing

This is a build-in-public site sitting on top of work that mostly isn't public. The rule that keeps that safe is simple to state and load-bearing in practice: when in doubt, it stays private. Nothing here is a live feed off anything else — the status snapshot on /now, the changelog, and the timeline are all hand-curated, redacted projections, reviewed before they're ever committed. There's no path from "something happened privately" to "it shows up here" that skips a human decision.

The guard suite

That rule is backed by an automated test suite that runs before anything ships, not just a policy on paper:

All of it lives in this repo's own tests/ directory and runs on every change — the guardrails are as public as the site they protect.

Status badge

Regenerates at every build from the same whitelisted status feed /now renders. Embed it anywhere — each embed links back here.

parallelogramist status

Markdown

[![parallelogramist status](https://parallelogramist.com/badge.svg)](https://parallelogramist.com/now/)

HTML

<a href="https://parallelogramist.com/now/"><img src="https://parallelogramist.com/badge.svg" alt="parallelogramist status" /></a>

Machine-readable endpoints

/badge.svg — Status badge

An embeddable SVG badge showing what's currently building — regenerated at build time from the same curated /now data.

/now.json — Now, as JSON

A verbatim, byte-derived mirror of the hand-curated status feed behind /now — build a widget on top of it.

/ships.json — Ships, as JSON

A verbatim, byte-derived mirror of the changelog behind /changelog — the same milestones as /ships.xml, in JSON.

/<post-or-lesson>/index.md — Raw Markdown per page

Every writing post and every lesson also serves its own clean markdown source — the same bytes the page's “Copy as Markdown” button copies.

/llms.txt — llms.txt

The llmstxt.org index: titles and links to every page, for an IDE agent orienting quickly.

/llms-full.txt — llms-full.txt

The full-content companion to llms.txt — every published page's body, expanded inline, in one fetch.

/rss.xml — Writing feed

Subscribe to new essays and notes.

/ships.xml — Ships feed

Subscribe to the changelog.

/learn/rss.xml — Lessons feed

Subscribe to new lessons.

/sitemap-index.xml — Sitemap

The machine-readable page index.

What it doesn't do

No trackers, no analytics beacons, no cookies, no third-party scripts. Nothing here profiles a reader — the site doesn't know who you are, and it doesn't try to find out.

Curious about the scale of what's actually here? See /stats — every number on that page is recomputed from the content itself at build time, never hand-typed.