My Hugo blog
How it's all going

How’s it all going?! I chuckled to myself when I wrote that title, because it’s been just a smidgeon under three years since I bashed out brew install hugo and started putting together what would ultimately become the page you’re looking at.
There are, of course, different aspects of the site’s progress over the past three years, and you should skip ahead to the bits that interest you:
- The tech stack: Hugo, Tailwind,
Gulp. - The content: What to keep, and what to throw in the bin.
- Life, and its funny little way of getting in the way.
The tech stack
Hugo
Hugo is fantastic. I’ll say that first. Fast, powerful and intelligent, as non-prescriptive about what your site contains as any web platform I’ve ever worked with.
It takes a bit to learn. Bjørn Erik Pedersen (@bep), the prime developer behind Hugo, is one of those hard-working, dedicated-without-thanks guys that the internet is built upon. I don’t think I’ve ever read a forum thread or GitHub issue about Hugo without seeing either @bep, or another prolific dev Joe Mooring (@jmooring) there to answer questions and guide people through building with Hugo. And it is a lot of fun. It’s one of the reasons I took up the project: I wanted to fall in love with web development again.
And it’s fast. Oh my God it’s fast. I start to freak out about build times when they exceed 20 seconds.
Git
The hardest part of the tech stack for me to get around, to be honest, was Git. My first instinct was to separate the content from the code: I made a Git repository for the code, and a submodule for the content. But that gets unwieldy very quickly, particularly when you already have content, that content largely dictates the type of layout and structure you’ll aim for, which dictates the code. It quickly broke my no stupid abstractions rule.
Advice: If it’s a personal blog, throw
keeping the repository cleanout the fucking window. It’s just not important enough to warrant your time, and nobody else gives two shits about the state of code of your personal blog.
What I ended up landing on, was three branches of a single repository. All code was (supposedly) done on main, any content work larger than writing a single post/entry was done in a branch like content, which was branched off and merged repeatedly back into main, and any crazy let’s-try-it-and-see features were branched off into their own feature branches until I had them silky enough for the main trunk. I also have a preview branch for spinning up a preview deploy in Netlify, though that part tends to shit me off more often than not and it’s a piece of cake to simply push another commit fixing whatever and have it build in less than a minute.
Tailwind
It’s fine. I don’t get excited about it, but it’s fine. Does its job marvellously. I guess in many ways that’s the sign of a great CSS library, it just sits in the background and becomes invisible. What it did do was get me thinking about design systems and standardisation a lot more.
Gulp
I abandoned Gulp and just use Hugo Pipes for all my asset pre-processing.
The content
Like many creative endeavours, one becomes attached somewhat to one’s creations. I found it very hard to ditch content. I tried following the process:
flowchart LR
content@{shape: docs, label: "Each piece of content"} --> external & internal
external{Does anybody have any use for this?}
external -->|Yes| keep[Keep the content]
external -->|No| maybelose(Maybe I should just delete it...) --But no, I like it--> keep
internal{Do I like this content?}
internal --->|Yes| keep
internal --->|No| lose[Lose the content]… and I could not escape the simple truth: This blog is as much a place for my adventures and thoughts as it is a place for you to read them. So a lot of content got dragged over.
Continue reading after the quoteLife never gives us what we want at the moment that we consider appropriate. Adventures do occur, but not punctually.
Life
Ahh, life. Funny thing. So it’s taken me three years because I have a day job, basically. I’ve been working at it on and off over that time, but one of the big impacts has been in the doing over the writing, viz., I have been too busy making the blog to write to the blog. You’ll likely notice the big gap in post dates.
Attributions
The following works, images or designs were not created by me: