Case study
This site, and the check behind it.
mattg.com.au is my own site. It has to prove what it claims: if I tell you your site should load fast on a phone, mine has to. It also runs a free website check that anyone can use on any address.
- Started
- 14 October 2026
- Live
- 1 h 26 min after the repository was created
- Built with
- HTML, CSS and a Cloudflare Worker
- Changes merged
- 60, to 30 October 2026
Empty repository to live in 86 minutes
The repository was created at 3:09 pm on 14 October 2026, Melbourne time. The first version was live on Cloudflare at 4:35 pm. It was a single page, but a real one: the design, the copy, a 404 page and the checks that still run on every change.
That's the pace I sell, so I hold my own site to it. Every change since has gone through the same steps: it's made on a branch, checked automatically, given a preview link, and goes live when I approve it. Sixty changes had been merged by 30 October.
Fast because there's less to load
There's no framework and no build step. The pages are plain HTML and CSS, with one small script that adds extras like the project brief. Every page works without it.
Each page carries its styles inside it, so a phone can start drawing straight away instead of waiting for a separate stylesheet to download first. Measured on a throttled phone in October 2026, that brought the first paint from about 690 to 420 milliseconds on the website check, and from about 500 to 400 milliseconds on guide pages like this one.
- One typeface, Archivo, served from this site rather than Google Fonts, and trimmed to the widths and weights the design uses.
- Photos cropped to the shape they're shown at, so phones don't download pixels that get cut off. The main photo also comes as AVIF, about a third smaller than the WebP version.
- Fonts, images and scripts are kept by browsers for a year. That's only safe because every link to them carries a fingerprint of the file, which changes whenever the file does.
Locked down without slowing down
The site sends a strict Content Security Policy: browsers only run what the site lists. The styles inside each page are allowed by a fingerprint of their exact contents, not by switching the protection off, which is the shortcut many sites take.
A check script runs on every change. It fails the change if a link is broken, an image has no alt text, a page is missing its title or description, or a fingerprint is out of date. More than 250 automated tests cover the Worker behind the website check.
The free website check
Give the check a web address and it runs Google's PageSpeed test, then over a hundred checks of its own: security headers, email and domain settings, mistakes in the HTML, search basics, accessibility, contact options, and the details Australian businesses need, like an ABN. It sorts what it finds into "Fix first", "Worth fixing" and "Nice to have", in plain English.
Built to fit Cloudflare's free tier
The check runs on Cloudflare Workers Free, which allows 10 milliseconds of processing and 50 outside requests for each visit. So the HTML checker reads the page once, in a single pass, and a 100 KB page takes 3 to 4 milliseconds. One check makes at most 48 requests, DNS lookups included, and a typical site needs about 25. When a check would go over, it's skipped rather than reported as a problem.
Safe to point at anything
Every request to the site being checked goes through the same gate: public addresses only, with private networks refused on every redirect. Nobody can use the check to poke around inside someone else's network.
Your history stays with you
Your earlier results, and the fixes you've marked as done, are remembered in your own browser, so the report can say what's changed since last time. My server only logs the address and time of each check, as the privacy page explains.
What it means for your site
Everything here is how I build for clients: plain, fast pages, strict security, automatic checks on every change and hosting on Cloudflare. The difference is that this one is mine, so you can test it yourself. Run it through the check, or through Google's PageSpeed Insights, and see.