Skip to main content
D The Drew Archive One house, many rooms

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

Own the platform. No Medium, no Substack as primary home, no rented ground. The domain is mine, the server is mine, the content is mine.
Plain text first. If I can't read the source files in a text editor, the format is wrong.
No tracking. No Google Analytics, no Facebook pixels, no ad networks. If analytics are added, they'll be self-hosted and privacy-respecting.
Built to last. The tools and formats chosen should still work in ten years. Markdown will. A lot of trendy frameworks will not.
One command to rebuild. The entire site generates from source quickly. The publishing workflow should stay simpler than the content itself.

If you build something similar and want to talk about it, I'd like to hear from you.