Skip to content

How this site runs

This site is small on purpose. It is the kind of public page I would want a county department to have: easy to keep patched, quick to load, and readable by anyone.

Stack

Content

WordPress with a small child theme of Twenty Twenty-Five. No page builder.

Server

Debian Linux, Apache, PHP and MariaDB on a small cloud VM with 1 GB of memory.

Edge

Cloudflare in front. HTTPS only, with HSTS.

Type

Public Sans, the typeface of the U.S. Web Design System, served from this site.

Why it is built this way

  • One gigabyte of memory: pages are plain HTML and CSS, with no JavaScript framework and nothing loaded from other servers. Pages here weigh under 300 KB before compression, fonts and photos included.
  • Accessible by default: one heading outline per page, landmarks, a skip link, visible focus, and text contrast that meets WCAG AA in light and dark mode.
  • Readable by machines as well as people: structured data for me and my company, and a plain-text summary at /llms.txt.
  • Light or dark follows your system setting.

Patching and backups

  • WordPress core, plugins and PHP are updated by hand, after a disk snapshot, and the site is checked afterwards.
  • The server disk is snapshotted daily.

Headers and security

Responses carry HSTS, nosniff, X-Frame-Options, Referrer-Policy and Permissions-Policy. A content security policy runs in report-only mode while it is tuned.

To report a security problem, see security.txt or email contact@dougirwin.tech.