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 12 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.

Analytics

GoatCounter

Small, self-hosted analytics without cookies or persistent visitor profiles. The site honors Do Not Track and Global Privacy Control, and collects only enough information to understand what readers find useful. Read the privacy policy →

Comments

Remark42 + Resend

A self-hosted discussion service with one-time email login, reply notifications, moderation, persistent storage, and nightly application backups.

Backups and recovery

Restic + Backblaze B2 + Vultr snapshots

Nightly encrypted off-site backups, automated integrity checks, restore testing, and failure notifications provide a tested path to recovery beyond the VPS itself. Read how the Archive was hardened →

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

Self-hosted comments and privacy-respecting analytics are now live. The remaining long-term plan is to keep refining the publishing workflow and the paths that connect material across the archive. 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.
Privacy-respecting analytics. No Google Analytics, no Facebook pixels, no ad networks, and no persistent visitor profiles. GoatCounter is self-hosted, uses no cookies, and honors browser privacy preferences. Read the privacy policy. Why I added analytics without making readers the product →
Disclose AI involvement. When AI meaningfully shapes a post, its contribution is clearly labeled. Each disclosure explains how AI was used while preserving my responsibility for the ideas, judgment, and final publication. Why I added AI disclosure to The Drew Archive →
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.