The site’s own observability.
A site that writes about platform engineering should be willing to show its own posture — including the trade-offs it makes and the things outside its control. Below: performance, asset weight, accessibility, hosting choices and the honest limits of GitHub Pages as a stack.
HTML for the home page, served over HTTP/2 from GitHub Pages edge via Fastly. About 1/10th of a typical marketing site.
Three stylesheets (site / enhance / per-page). No framework, no preprocessor output, no Tailwind, no Bootstrap.
site.js + enhance.js, both deferred. No framework runtime. ⌘K palette and reveal animations are vanilla.
Cache-Control max-age=600 + Fastly CDN. Home page typically served from Melbourne edge (cache-mel11231-MEL).
Measured live via curl -sI https://hellouchit.com/ · numbers refresh whenever the deploy cycles.
Live third-party scanners.
Trust an independent scanner over my published number. Each link runs a real scan against this site and renders a fresh score:
Google PageSpeed Insights / Lighthouse against the live URL. Targets >90 mobile, >95 desktop.
Run live scan →Real-user data from Chrome User Experience Report (28-day rolling). LCP / INP / CLS.
View report →WebAIM WAVE accessibility evaluation. Checks colour contrast, ARIA roles, landmark structure.
Run scan →Stack choices — what runs and what doesn’t.
What is outside our control on GitHub Pages.
Being honest about this matters more than vanity badges. Hosting on GitHub Pages is a trade-off: $0 cost, simple ops, GitHub-as-CI, nothing to patch — in exchange for limited HTTP-header customisation.
- Content Security Policy (CSP). Cannot set strict CSP via Pages. The
vercel.jsonfile in this repo carries the policy that would apply if redeployed to Vercel. Today, on Pages, no CSP header is sent. - HSTS preload. Pages enforces HTTPS but does not advertise HSTS with
preload. To preload, the site would need to be deployed behind a CDN we control (Cloudflare, Vercel, Netlify) with the header set. - Strict X-Frame-Options / X-Content-Type-Options / Permissions-Policy. Same constraint — not set at Pages edge.
- Server-side request handling. Pages is static-only. Any future form-handling, auth or API needs an off-platform endpoint.
The trade-off is deliberate. Practitioner-brand sites at this stage benefit more from radical simplicity than from header maximalism. If/when this site needs server-side logic or strict CSP enforcement, it moves to Cloudflare Pages or Vercel and the headers in vercel.json become live.
What gets measured here over time.
- Page weight + LCP for the home page — regression alarm if either drift past target.
- Deploy frequency + build duration — the boring DORA metrics applied to a personal site.
- Broken-link count — weekly check against internal and external links from essays + diagnostics.
- Lighthouse + WAVE quarterly — with the deltas published here.
This page itself is an instance of the principle in The encoded enterprise architect — if you can’t measure it and publish it, you don’t enforce it.
Companion.
The security posture lives at /security. The two pages together are the “practising what we preach” surface.