I started this site a few years ago and abandoned it. Not because anything broke. Because the parts that weren’t interesting to me felt like a chore, so I stopped.
The infrastructure went up quickly. S3 bucket, CloudFront distribution, GitHub Actions pipeline, Terraform for all of it. That part was fine. Then I had to pick a theme and write something, and I didn’t want to. So the repo sat empty.
Why AWS Instead of Something Simpler#
GitHub Pages would have taken twenty minutes. Netlify maybe ten. I chose AWS and Terraform anyway, and not because I needed the features.
My day job is backend. I work with AWS constantly. But “work with AWS constantly” often means using whatever infrastructure someone else already set up. A personal site is low stakes enough that I can build it from scratch myself, make the decisions, and actually understand what’s running. If something breaks, I fix it. If I want to change something, I know where to look.
Terraform is the same reasoning. I could click through the AWS console. But if I do it in Terraform, it’s documented, repeatable, and I can tear it down and rebuild it. That’s worth the extra time at the start.
It’s not the practical choice. It’s the practice choice.
Coming Back to It#
I came back recently, this time with Claude Code. Getting everything running again took one session. Swapping the theme from Stack to Blowfish, restructuring the Hugo config, debugging an S3 routing issue where /projects/ was returning a raw XML AccessDenied error instead of a page.
That last one is a good example of what AI actually helped with. I knew roughly what the problem was. S3’s REST API doesn’t resolve index.html for directory paths the way a web server does. But writing the Terraform for a CloudFront Function to fix it, getting the syntax right, wiring it into the distribution config correctly, that would have taken me a while solo. It took minutes with Claude Code.
What I want to be clear about: it didn’t make decisions for me. Every choice, which theme, how to structure the config, what the routing fix should actually do, I still made. It removed the friction between knowing what I wanted and having it done.
Using AI Across the Whole Thing#
The code side is obvious. What surprised me was how useful it was for the rest of it.
I used it to write the first draft of this post. To set up a writing style guide so it knows how I want content to sound when I ask it to help. To check the repo was safe to make public before flipping the visibility. To configure the GitHub repo settings via CLI instead of clicking around the UI.
None of those are tasks people usually think of as “AI use cases.” But they’re all things I had to do, and having a tool that could handle them in the same flow as the code work meant the whole project moved faster.
What’s Running It#
- Hugo for static site generation
- Blowfish theme
- S3 + CloudFront for hosting and CDN
- Terraform for all AWS infrastructure
- GitHub Actions for build checks on PRs and deploy on merge
Source is on GitHub.
