Colophon
We built this website by hand, primarily to explore a collection of Web 2.0 techniques and technologies. It is deliberately overengineered, partly an indulgence and partly to demonstrate specific concerns or opportunities that a modern web experience can offer. Work on it is in the open, and open sourced, on GitHub if you want to explore or learn from it.
Technologies
Astro provides me with most of the heavy lifting - it’s a static site generator that handles server-side rendering, routing, access to features through plugins, and other optimisations. I’m using it with Typescript (and a sprinkling of Zod) to shift failures as early as possible, and leaning on DaisyUI and TailwindCSS to simplify and centralise components and styling. Content is created using MDX, a Markdown variant, again separating code from content.
Developer experience is key, since I want to focus time on value, and so I use PNPM and Turbo for a rock solid monorepo and build setup, complete with tooling such as linters, formatters, testing, and other fail-fast signals.
All of the infrastructure is defined in CDKTF, a TypeScript wrapper over Terraform, and deployed into an Amazon Web Services (AWS) account to host the website. It creates a CloudFront distribution that serves content from an isolated S3 bucket, with hardened security headers and support for apex and directory redirection.
Deployment is through CICD using AWS CodePipeline and Terraform Cloud.
Content
Using MDX for writing and editing my content enables a distraction-free writing approach, and my content management system is deliberately simple: files and folders, with minimal frontmatter to translate from that to a cohesive visitor experience.
In places, I use Microformats and other semantic enrichment.
Design
Design is kept simple and minimalist, with a curated set of icons and colours.