My portfolio site, designed, built and deployed by me. The name is 178 containers you can knock over, and one git tag ships it to an arm64 server.




:root:has([data-theme]) in the server-rendered HTML, so the right colour is there on first paint
with no JavaScript. On hover, nav links mix the accent 80% with the ink, which lifts the home page's contrast from 3.28:1 to 4.66:1 and passes WCAG AA.


vX.Y.Z tag makes GitHub Actions build the app, nginx and Caddy images on an arm64 runner (the server is an arm64 Ampere VM, so no emulation) and push them to GitHub's container registry. CI then SSHes in with a key that can run exactly one thing, deploy.sh, with the tag as its only input. The server pulls the images, waits until the containers are healthy, and CI checks that the home page and the CV answer 200. The server never
builds, and rolling back is the same script with an older tag.
Posted Oct 26, 2026
My portfolio site, designed, built and deployed by me. The name is 178 containers you can knock over, and one git tag ships it to an arm64 server.