Building
Before you ask: no, it’s not vide coded. But if we’re making AI confessions, then I’ll admit to a bit of Github Copilot, because man doesn’t do CSS and really doesn’t want to.
I wanted something easy to maintain, free to host, and familiar to me as it’s a solo project. I’ve been building things in Go for a few years now, and used the (Go) Hugo framework in a previous role, so that felt like the best and most obvious option.
Hugo lets you define most of how the site looks using configuration files in Yaml, markdown and relatively simple templated HTML. All the content is in Markdown, which is super easy to update.
Ideally getting it looking how I want should be a one-time effort at the beginning, but in practice it’ll probably be something to tinker with forever.
Modifications
Hugo is great for its range of themes. In this case Hugo Fresh, which builds easily without any potentially complicated dependencies like Node.JS.
That said, no theme is going to be perfect for what you want. I’ve had to make lots of small modifications to simplify Hugo Fresh for what I wanted. Other than the obvious updates to customise the branding1, I have also done the following:
- Stripped out the sidebar, and most of the default sections from the home page. Then I updated the remaining section layouts to tweak the fonts and minor elements of layout.
- Added shortcodes to manage images, format block quotes, put in the current year, and other little helpful things.
- Added a layout for the blogs list page, and for a single blog (like this one).
- Added a layout for the services pages - this is just a cut-down version of the blog layout.
You can still see the resemblance between this site and the example Hugo Fresh site:

One thing that Copilot has actually been really useful for is not just making small changes for me, but also explaining how different elements are implemented in the theme (and what it’s based on), and how they can be modified. That saved lots of time in having to read up on how the theme is implemented.
Hosting
This one’s easy; everything is on Cloudflare now, and a Pages worker is free and relatively easy to use. Plus there are lots of existing blogs2 on deploying a static site using Cloudflare Pages. In brief:
- Under
Compute»Workers and Pages, create a new application.
- Connect it to your Github repository.
- Configure the build process, making sure to set the
-boption with the base address. This set of build parameters worked for me:
- That should build and deploy to a CF address. Add a custom domain binding to use your proper domain, and that’s it.
This setup automatically builds and deploys for any updates pushed to main.
-
Shout out to Iconic UX for the illustrations. ↩︎
-
E.g. from Cloudflare, and this blog. ↩︎