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.