Migrating Hugo themes with Cursor: from procrastination to production in an hour
Migrating Hugo themes with Cursor: from procrastination to production in an hourThe procrastination project
I’ve been putting off updating this site’s theme for years. Not just months - actual years. The kube theme has served me well since around 2018, but it was looking dated and I’d been eyeing some of the more modern Hugo themes floating around.
The main blocker was always the same: “something i’ve been putting off for years because of difficulty design and technical wise.” Between the fear of breaking existing content, losing SEO optimizations, and the general hassle of migrating hundreds of posts with their various formats and metadata quirks - it just never felt worth the time investment.
Enter Cursor and AI coding assistants.
Why bluf?
I’d been following Victoria Drake’s work on the open and federated web for years. Her approach to minimalist, brutalist web design really appeals to me - fast loading, readable, no nonsense. The bluf theme caught my eye months ago, and I “nearly went with the til theme for hugo by mikael but in the end I preferred this design as more appealing and easy to read.”
The brutalist aesthetic fits my writing style - direct, functional, getting to the point. Plus Victoria’s commitment to performance and accessibility meant I wouldn’t be trading usability for looks.
The Cursor experiment
I fired up Cursor with a simple prompt: “I want to add the theme bluf from this site: @https://github.com/victoriadrake/victoriadrake.github.io/tree/master and test it out”
What happened next genuinely surprised me. The AI didn’t just download and install the theme - it:
- Analyzed my existing setup - examining my current kube theme, config files, and content structure
- Identified compatibility issues - spotting that my content was in “blog” section but the new theme expected “posts”
- Preserved existing features - copying over SEO meta tags, related posts functionality, and other customizations
- Fixed integration problems - updating config syntax, handling permalink structures, managing the build process
The whole migration took about an hour of back-and-forth prompting and testing. Compare that to the years I’d been avoiding this project.
The technical wins
Some standout moments from the process:
Smart problem-solving: When I mentioned “the view all posts link goes to a 404 - should go to ‘blog’”, Cursor immediately understood the URL structure mismatch and fixed the template.
Design consistency: It caught theme conflicts like “the hover colour on tags needs to be changed to show up (currently same colour - not visible when hovered)” and fixed the dark mode color scheme issues.
Feature preservation: Instead of losing functionality, we actually improved it - bringing over the related posts logic from the old theme and enhancing the tag filtering system.
Git protection: It even set up proper .gitignore
rules so the generated public/
folder wouldn’t pollute version control anymore.
What I learned
This experience crystallized something I’ve been thinking about regarding AI coding assistants. They’re not just autocomplete on steroids - they’re genuine thinking partners for technical problems.
The key was being specific about what I wanted: “can we take the related posts feature from the old blog theme kube and use it in bluf because i see none still!” Rather than vague requests, detailed descriptions of the current state and desired outcome worked best.
I also appreciated how it handled the iterative nature of web development - test, spot issue, fix, test again. Each round of feedback led to targeted improvements rather than wholesale rewrites.
The missing piece
One thing I will miss from considering other themes is the graph visualization feature. “I will miss the graph feature, but perhaps cursor can add that for me next time!” There’s something appealing about seeing the connections between posts and topics in a visual way.
That said, the clean reading experience of bluf more than makes up for it. Sometimes less is more, especially when you’re trying to get ideas across clearly.
The broader picture
This migration represents something bigger than just a theme change. It’s proof that AI assistance can finally make those “someday” projects achievable. The technical barrier that kept me procrastinating for years dissolved in a single focused session.
“cursor handled it all easily and it took no more than an hour or so to test and make small fixes and even merge features from old theme to new to ensure it works as I like it.”
For anyone sitting on similar technical debt - whether it’s updating dependencies, migrating frameworks, or refactoring old code - the AI assistant approach is worth trying. The key is breaking it down into clear, specific requests and being prepared to iterate.
What’s next
The site is now running on bluf with all the features I wanted:
- โ Modern, minimalist design
- โ Dark/light mode support
- โ SEO optimization maintained
- โ Featured posts system
- โ Responsive layout
- โ Fast loading times
Still on the todo list: getting the related posts feature working properly and potentially adding some Obsidian-style open graph image generation. But those can wait - the main migration is done and the site feels fresh again.
Sometimes the best way to beat procrastination is just to ask for help - even if that help comes from an AI assistant.
If you’re curious about the technical details or want to try a similar migration, feel free to reach out. The combination of Hugo’s flexibility and AI assistance makes these kinds of projects much more approachable than they used to be.