Skip to main content

Technology

This page explains the technology behind this site.

Site

The site is built with Astro, a framework that turns the pages into plain static files ahead of time. Pages are readable with JavaScript turned off, and the small amount of script the site uses is limited to features that need it, such as the light and dark theme switch.

All public content is written as Markdown and MDX files that live in the site’s source repository. Content is checked against a schema when the site is built, so a page with missing or invalid details fails the build instead of publishing incorrectly.

Hosting

Cloudflare serves the static pages. Every change to the site gets its own preview version, so it can be reviewed before it goes live.

Design

The design is a custom theme, ported from the previous version of this site and styled with Tailwind CSS, a utility-first CSS framework. It supports light and dark themes and is checked against WCAG 2.2 AA accessibility guidelines.

Contact form

The contact form sends messages to a small API that runs in the same Cloudflare Worker as the site. Cloudflare Turnstile checks that a person, not a script, is sending it. Messages are stored in a single Cloudflare D1 database and deleted automatically after 12 months. Your IP address is used only to limit repeat sending, and only a one-way, salted fingerprint of it is kept. The privacy policy has the details, including where the database is located.

Analytics

The main site uses Cloudflare Web Analytics, which sets no cookies and does not track individuals. Preview versions do not use it.

Data locations

Service Purpose Location
Cloudflare Serves the pages and visitor statistics Global network
Cloudflare D1 Stores contact submissions Set out in the privacy policy
Cloudflare Turnstile Spam check on the contact form Global network

Questions

Curious about how something works? Get in touch through the contact page and I am happy to explain.