Colophon
How this site is built, what it runs on, and why those choices matter.
Philosophy
The Drew Archive is built to last. No JavaScript frameworks that will be obsolete in two years. No platform dependencies that can disappear overnight. No database that can corrupt. The site is static HTML generated from Markdown files stored in a Git repository. If every service I use shut down tomorrow, I would still have every word in plain text files on my own machine.
The entire site can be rebuilt from scratch with one command. That's the point.
Stack
Site generator
Hugo
Fast, single binary, Markdown-native. Builds the entire site in well under a second on my machine.
Hosting
Vultr VPS + nginx
A small Debian server serving static files directly through nginx with Let's Encrypt certificates. Simple and easy to understand.
Version control
Git + GitHub
Every change to the site lives in version control. The repository is the source of truth, and every revision is recoverable.
Deployment
Shell script + rsync over SSH
Changes are merged to main, then deployed with a small script that rebuilds the site and syncs the generated files to the server. No manual uploads, no FTP.
Content format
Markdown + front matter
Every piece of content is a plain text file with structured metadata. Portable, readable, and future-proof.
Graph / Map
Cytoscape.js
The interactive graph view is assembled from content metadata and rendered in the browser without needing a separate backend service.
Search
Pagefind
Static search indexing built at publish time, so the site can offer search without running a search server.
AI assistant
OpenClaw
A local-first AI agent that helps research, draft, edit, publish, and maintain the archive while keeping the workflow close to the source files.
What's planned
The long-term plan includes self-hosted comments, privacy-respecting analytics, newsletter tooling, and a broader publishing workflow. The goal is to grow the site without changing its foundation.
New writing still begins as Markdown. New features should be lightweight, understandable, and easy to replace without putting the archive at risk.
Typography
Headings
Playfair Display
A serif face with classical proportions, used for page titles, section headings, and the site name.
Body text
System serif stack
Clean, readable, and fast-loading. The content should be the focus, not the font files.
Code and addresses
JetBrains Mono
Used where monospaced text actually helps, including code blocks, technical notes, and donation addresses.
UI elements
Inter / system sans
Navigation, labels, badges, and supporting interface elements.
Principles
If you build something similar and want to talk about it, I'd like to hear from you.