The books were scattered. Two published titles lived on separate Amazon pages, a third was a preorder with no home, and two more existed only as promises. The one canonical books page was a Substack post that could hold email but not a catalog. If you wanted the whole story, there wasn’t a page to send you to.
What It Is
books.listsof30.com is the one-stop shop for the entire series. The homepage opens on the next book, then steps back to show the whole arc: a vertical timeline of five books, one per decade of a life, from the 20s to a capstone that is deliberately still a promise. Below it, every book has its own page built from data, with the full chapter list, buy buttons for each format, and an editions row for the signed copies and the NFT edition.
A second page, /assets, tracks the thirty things being built to launch book three, grouped from foundation to publisher endgame with a live status on each. It is the kind of page an acquisition editor screenshots, so it is built to be screenshotted.
The Reframe
Earlier drafts called the third book “the third and final,” a triptych closing. The catalog told a bigger story: five books, one per decade, a life on a publishing schedule. That correction is not cosmetic. It is the difference between a project that ends and one that compounds, and the whole site is built around the longer arc. The framing lives in one constant so it can never drift.
The Discipline
Every link lives in one config file, and copy decisions live in one spec. A link that is not live yet renders a “coming soon” state instead of a dead end, so nothing on the page lies about where it goes. Facts that were not locked, an unwritten chapter list, an unpicked start year, stay on the page as visible bracketed placeholders rather than invented filler. Building in public means showing the seams.
It is static, with zero client JavaScript. The collapsible chapter lists use the browser’s own disclosure elements, not a framework. The design is the book brand’s own system, terracotta on warm paper, borders instead of shadows, the number thirty carried as a motif rather than decoration.
Status
Live on Cloudflare Pages at books.listsof30.com. The site was a greenfield build with no prior codebase, shipped one commit per section against a written spec, then deployed. Filling a placeholder is a one-line edit to the config or the spec, then a redeploy.
Stack
Astro in static mode, TypeScript for the book and asset data, and a hand-authored CSS token system mirrored from the brand’s canonical design files. Hosted on Cloudflare Pages. No backend, no database, no accounts. The data is the site.


