A New Theme (with a little help)
Eagle-eyed readers of this blog (I know you’re out there!) will notice that the look and feel has changed ever so slightly. It’s not a trick of the light, it really has changed. I recently swapped out the theme used for the blog, replacing the original Bootstrap theme with Mainroad.
Why? A couple of reasons, but primarily because Bootstrap outgrew my needs. This isn’t a knock on Razon’s work, but rather a subtle complement. There have been several changes and advancements in Hugo, both in things that it can do as well as how themes are handled. Themes are now consistently managed as modules rather than as simple “drop this tarball’d directory into your source tree” bundles, and the Bootstrap theme changed with the ecosystem, becoming more complex and capable. For my needs, however, complex is a contraindication. I put off the work to research a replacement for a long time, though it lived quietly in the back of my brain as something to tackle when I had some time to poke at it.
And then along came Claude.
I’ve been using Claude for a little over a year with a personal Pro account. I also have access to Claude through an enterprise account for work. It took me a little time to figure out some best practices for getting good results out of it, but at this point I’m using it most every day. I leverage Claude for a wide variety of things - from researching best practices for my nascent gardening (planting beds with vegetables!) to learning about electronics and microprocessors for personal projects and more. It’s truly helpful for gathering and distilling large quantities of information and digging into details. At work I most heavily use Cowork, leaning on the ability of Claude to ingest and analyze large amounts of documentation and data.
A random comment by a former colleague about my blog brought the theme thoughts bubbling back up in my brain. A perfect test for Claude. A few weekends ago I spent the morning with my coffee and Claude and dug into what it would take to make a theme change. My initial assumption was that I was going to end up with a new look/feel, and that I’d need to grind through a bunch of ankle-biter changes to get everything working with a new theme.
My first step was to get Claude up to speed on what was already there and what I was wanting to accomplish. I needed to make some tweaks to my robots.txt file to let Claude see the blog in it’s current state (Claude had actually helped me build a robust robots.txt, so it had locked itself out). I had it analyze the site, build some context of the current state, and then asked it to survey available themes for something that would be a reasonably close match.
Claude came back with about half a dozen potential themes, and in short order we whittled it down to Mainroad. Based on everything we discussed, Mainroad looked to be a good replacement, though I was still skeptical.
Step two was to get a basic test site set up with Mainroad. I got this done pretty quickly using an additional domain and site under my NearlyFreeSpeech account. Once that was up and functioning we got to work on customization.
The customization process to mold the Mainroad theme into what I wanted was largely pain-free using Claude Code, though it took much more trial and error than I expected it would. It wasn’t hard though - I got it done through telling Claude Code what I wanted changed, and it just did it. CSS tweaks were the predominant changes, followed closely by adjusting existing templates and creating new ones when needed. All told I probably spent a total of about ten hours across half a dozen sessions to get things looking how I wanted them.
What I ended up with was a newly-themed site that looks almost exactly like the old one. There are some very subtle differences (which are things that I like better then with the previous theme), but overall you’d be hard pressed to know for sure it’s different unless you notice the new theme referenced in the footer.
Realistically, if I had to do this all myself it would have never happened. I have no interest or willingness to dig into the byzantine workings of CSS, and without doing that there was no hope of adapting a new theme to my tastes. I could have found a new theme and integrated it, but I would have had to generally accept a new look/feel.
Claude really was the magic sauce in this process. As we worked through all of the changes together it got perceptably better along the way, through building increasing context of my preferences and how I was working with it. I know this is a pretty mundane and relatively uncomplicated application of Claude’s capabilities, but what I found is that the more I pushed it the more I realized I wasn’t pushing hard enough. For work like this, and things even more complicated, it’s truly indispensable. Color me impressed.