Skip to main content
  1. Blog/

Migrating to Hugo for the website and blog

·663 words·4 mins

For way too long, I’ve been living in this weird setup where I had my main site built with plain HTML and CSS and an external blog. My main website was a simple portfolio website, where I wanted to showcase some work and I like static websites without weird server side components. I was using a separate blogging platform that I didn’t control plus I got weirded over by their need to sell all the data to AI scrapping. Writing blog posts had become this massive frustration where I’d spend more time fighting with the platform than actually getting my thoughts down. Since i wrote most things internally for myself, It did not matter to make the extra effort to publish any thing.

Something had to give, so I started looking at static site generators. The obvious first choice was Jekyll since it’s what everyone talks about, but honestly, it felt a bit too Ruby focused for my liking. I went into the Ruby package manager hell, nuked a couple of testing VMs with the horrendous Gems and run time failures. Then I tried MkDocs, which I actually really enjoy since it’s Python based. I’ve built a couple of documentation websites with MkDocs and I’m pretty comfortable with it plus I had a process and the development environment with it. The Python ecosystem just makes sense to me.

But here’s the thing: I also wanted to learn and get exposure to different programming languages and frameworks. Staying in my Python comfort zone wasn’t going to teach me anything new. That’s when Hugo started looking interesting. Go based, crazy fast, and a completely different ecosystem to explore.

The theme hunting process was where things got really sketchy though. Being aware of supply chain attacks and all the security nightmares that can come from poorly maintained dependencies. I went digging into different Hugo themes with a critical eye. Holy hell, some of these popular themes are absolutely sketchy. I guess some of them changed owners after becoming popular. Then came the unreliable themes that are not maintained, I’m talking themes that would crash constantly, others with dependency problems that couldn’t be fixed no matter what you tried, and then there were the ones with way too many features and no documentation to support it. I even started the process of writing my own theme but it will take some time.

After going through what felt like dozens of themes, I finally settled on Blowfish by Nuno Coração . This thing is excellent, and more importantly, it comes with great documentation that actually helps you understand what’s going on. What really sold me was discovering blowfishtools , which Nuno wrote specifically to maintain the theme. Just run it over npx. Having dedicated tooling around theme maintenance showed me this wasn’t just some weekend project that would get abandoned in six months. It does crash If you are using the wrong parameters or if you are missing assets, But for vanilla configs, the convinence is worth it.

Going into the theme and figuring out how everything works has actually been fun. It’s not just about copying and pasting config files, you actually understand the structure and can customize things properly. The learning curve isn’t terrible, and when you do run into issues, the documentation usually has the answer. Also LLMs have been very helpful though often outdated with the documentation.

Now comes the tough part though: actually migrating everything slowly and killing off that other blog setup. It’s going to be a process moving all the old content over, making sure that links and URLs don’t break, and gradually shifting everything to the Hugo setup. But honestly, having a real workflow for writing and publishing is going to be worth the migration pain.

At least it kept me busy for a shortwhile, and more importantly, it means I’ll actually start publishing the stuff I’ve been writing in Obsidian and Logseq instead of letting it sit there forever.