A quiet publishing system for serious reading.
DistilledReads started as a focused nonfiction review shelf and is becoming a durable content platform: books, essays, search, syndication, schema validation, and newsletter capture without losing the calm of a static site.
Project brief
A personal reading shelf that can grow like a publication.
DistilledReads turns book notes into structured public pages: reviews, categories, related recommendations, long-form essays, RSS, search, and clean metadata for both humans and machines. The architecture keeps the production site static by default, then attaches dynamic capabilities only where they have a clear job.
Version 1
Static review shelf
Curated review shelf
The original product surface centered on concise nonfiction reviews, categories, recommendations, cover art, and affiliate purchase paths.
Static pages
The site was designed for fast public reading, with review pages generated ahead of time instead of assembled by a runtime application server.
Simple discovery
Core SEO, public navigation, review metadata, and a clean homepage made the project useful without needing a CMS or database first.
Manual publishing
Content changes lived in the repo, which kept authorship controlled and inexpensive while the format and voice matured.
Version 2
Content operating system
Astro content platform
Books and essays now live in Astro content collections, with Markdown files validated by TypeScript and Zod-backed schemas at build time.
Essays as a second lane
The blog-style essay layer expands the site from reviews into long-form pieces on reading science, print culture, history, practice, and technology.
Search and reader utilities
Small React islands power command search, theme switching, newsletter signup, and notifications while most of the page remains static HTML.
Static production hosting
The build outputs static files that can be served from object storage behind a CDN, with a separate optional newsletter backend for double opt-in subscriptions.
Publishing architecture
Markdown is the database until the site earns something heavier.
The current design favors trustworthy static output over a complex CMS. Each review or essay is a checked-in content record, the build validates every field, and the deployed site serves pre-rendered pages through a CDN. The newsletter path is separate, so reader signup can be dynamic without making the whole publication dynamic.
| Surface | Role in the system |
|---|---|
| Book reviews | Markdown frontmatter drives title, author, category, rating, summary, takeaways, related books, cover handling, and affiliate links. |
| Essays | A second content collection publishes long-form reading pieces with hero images, tags, reading time, RSS entries, and Article structured data. |
| Visibility | Draft and scheduled fields are enforced at build time, so unpublished work never becomes a hidden client-side route. |
| Discovery | The build emits canonical pages, sitemap output, merged RSS, Open Graph metadata, JSON-LD, robots.txt, and llms.txt. |
| Newsletter | An optional API-backed form can connect to a double opt-in subscription stack without turning the site itself into a dynamic app. |
Publishing loop
Read, distill, validate, publish.
01
Read
Books and source ideas become structured notes, review drafts, and essay candidates.
02
Distill
Frontmatter captures the public shape: category, rating, takeaways, related works, and publication metadata.
03
Validate
Astro, TypeScript, tests, and schema checks catch broken categories, missing fields, draft visibility, and feed issues before release.
04
Publish
A static build emits review pages, essay pages, RSS, sitemap, and metadata that can be served cheaply from the edge.