I’m not a web developer, but I wanted a website — a place to showcase my work and prove to myself I could build one. So I spent the Remembrance Day long weekend rebuilding my site from scratch.
I chose Hugo because it’s a fast, modern static site generator, and AWS S3 for hosting.
Installation
I work on a Windows 10 machine with WSL2 Ubuntu.
I installed the extended edition of Hugo via Homebrew — sudo apt install hugo doesn’t ship the latest release.
See: https://gohugo.io/installation/linux/
Getting Started
I followed the official Quick Start guide and picked the Ananke theme.
Image Gallery
I also wanted a home for my photos — nature, city scenes, and my lovely friend Molly.
I followed this gallery tutorial to add one. I’ve found that reading working code examples is the fastest way to understand how things fit together — see the companion repo.
Deployment
At first I deployed manually: build with Hugo, then copy everything to S3.
hugo
aws s3 cp public s3://album69.com/ --recursiveThat worked, but it re-uploaded every file each time — and worse, it skipped the CloudFront invalidation, so visitors could keep seeing stale pages for up to 24 hours.
These days it’s one command: ./deploy.sh. It builds the site, syncs only the changed files to S3, finds both CloudFront distributions automatically, and invalidates them so the new version shows up right away.