Sarah Westall
Complete rebuild of a 100K-monthly-viewer media site — WordPress out, Astro + Directus in.
- Performance 34 → 99
- 1,800+ static pages built in ~5s
- Custom affiliate marketing system
- Rumble + Substack aggregators
- ~2ms TTFB on edge
A full rebuild of an established journalist's media platform off WordPress and onto a static-first Astro frontend backed by a headless Directus CMS on MariaDB. The original WP site averaged 2–5 second TTFB even with full caching, was constantly probed by plugin-vector exploits, and turned every minor change into a risky deploy. The new stack ships ~2 ms TTFB, has effectively zero public attack surface, and lets the editorial team work in a small focused admin instead of fighting WordPress.
Every page is pre-built into plain HTML at compile time — 1,800+ pages render in about 5 seconds — and served directly by nginx. Pagefind handles full-text search entirely in the browser, with the index generated at build. Images flow through a sharp + WebP pipeline that emits 400 / 800 / 1600 responsive variants per source asset. When the editor saves in Directus, a custom Node listener catches the webhook and runs the rebuild end-to-end in 5–10 seconds.
Two pieces are bespoke to this property: a custom affiliate marketing system with
slug-based /go/<name>/ redirects (so a single edit re-points an affiliate link
across every post that references it, with impression + click tracking) and content
aggregators that pull from the host's Substack via RSS, fetch Rumble video metadata,
and write everything into Directus collections so the homepage automatically reflects fresh
external content without manual curation.
The same self-hosted Go analytics service that's now on keltus.io originated here — page-view counting with GeoLite2 city enrichment, a Directus admin module for charts and city maps, and a contact form pipeline with Brevo email delivery and per-submission geo lookup. The full stack is deployed as systemd services on a single VPS behind nginx + Let's Encrypt.