Why I Switched to Hugo from a Hand-Coded Website


When I first started building my website, I hand-coded every HTML page (I still host some of pages here and here). Hand-coding gave me complete control over every detail—the image placement, the custom divs, and how things linked together. Early on, this process was straightforward and even satisfying in a control-freak sort of way. But as the site grew, so did the headaches. Managing and maintaining everything by hand became tedious, inefficient, and very retarded. Looking back, I can see how switching to a tool like Hugo earlier would have saved me a lot of time and unnecessary frustration.

The Challenges of Hand-Coding

At first, hand-coding seemed fine. The site was small, the updates were manageable, and I didn’t have many features to worry about. But as I added more pages and started thinking about improving functionality, things began to spiral. Every new page meant copying an existing HTML file, updating content, and manually editing navigation menus across the entire site. This repetitive process quickly became a chore, and small updates often introduced inconsistencies. A typo or forgotten link could create problems that took too much time to fix.

Keeping the design consistent became another challenge. If I wanted to tweak the layout—something as simple as adjusting the footer or reorganizing navigation—I had to go into every page and make the same change. What should have been a small update turned into hours of manual work. The larger the site became, the harder it was to ensure everything stayed uniform.

I also started wanting more features. Automated RSS feeds were at the top of my list so readers could subscribe to updates, but managing an RSS feed manually for every post wasn’t realistic (I eventually cobbled together a bash script to generate a rss feed before I switched to hugo, but that was a janky solution). I also wanted to organize content using tags, but creating tag-specific pages required writing new code for each tag. And then there were the metadata requirements—titles, descriptions, and Open Graph tags for every page. These things needed to be consistent, but doing them by hand was time-consuming and error-prone. Instead of building new things, I was stuck maintaining what I already had.

Making the Switch

A few months ago I started researching better ways to manage a site and eventually landed on Hugo. Hugo is a static site generator that is capable of automating everything that I was having issues maintaining. The idea of switching from hand-coding was intimidating at first. Migrating everything over sounded like a huge effort, and I wasn’t sure how much I’d need to learn.

For the last several weeks while being on holiday leave from my USMC unit, and then getting back with little assigned to me, I’ve been learning the basics on how to use Hugo using Luke Smith’s Lugo theme. The theme with some modifications has so far been able to automate all the tasks that I previously did by hand.

What Changed After Moving to Hugo

Switching to Hugo has solved a lot of the problems I’d been struggling with. I no longer have to worry about manually updating every page. Hugo uses templates for things like headers, footers, and navigation menus. If I want to make a change, I update the template, and it propagates across the entire site automatically. Everything is automated.

RSS feeds were another big win. Instead of running a random bash script to make my RSS feed, Hugo generates the feed dynamically whenever I add new content. It’s one less thing to think about and have attached to the website randomly. Writing the webpages got a lot easier as it’s markdown not HTML. Hugo takes care of creating tagpages, which means I no longer have to code and update those myself.

Metadata, which used to be a repetitive chore, is now automated. Hugo generates titles, descriptions, and Open Graph tags for each page based on the content itself. Writing content has also become faster because I don’t have to code everythin in raw HTML. Instead, I write in Markdown, which is simpler and cleaner (I still insert images as raw HTML as I like using certain custom divs). Hugo handles converting Markdown into HTML and applies the templates automatically.

Lessons Learned

Looking back, I wish I had made the switch sooner. Hand-coding taught me a lot about the basics of web development, but it wasn’t a sustainable way to manage a growing site. Moving to Hugo made everything easier and freed up my time to focus on things that actually matter—like creating new content and improving the site.

The experience has also made me rethink how I approach tools and workflows. I used to think hand-coding gave me more control, but in reality, it slowed me down. Sometimes, the right tool isn’t about saving time; it’s about letting you focus on the work you actually want to do. For me, Hugo has become that tool.