Spoiler: Harder Than I Thought - Thanks, Hugo!

It all started with a gentle idea, maybe I’ll start a blog.

Well, sort of. You’re reading it now, so clearly something worked. But oh boy… let’s not pretend this was smooth sailing.

Just a little place to write. Maybe share some stories. Possibly wax nostalgic about arcades and terrible 90s tech. A personal outlet. How hard could that be?

Well… cue three full site rebuilds, minor meltdowns, Git acrobatics, and a Markdown moments that very nearly ended me.


Shy Start: Writing About Feelings? Eww.

Let’s be honest, the hardest part wasn’t Hugo or Markdown. It was the mental hurdle of admitting that I wanted to write at all. Writing about thoughts? Feelings?? Online???

We’re not quite at “emotional vulnerability” yet, but I’ve at least built the space where those feelings might one day live. Baby steps.


Tools of the Torture

Naturally, I decided to use Hugo, the lightning-fast static site generator that also requires you to mentally download a whole new logic structure. I went with the PaperMod theme because it looked slick and didn’t offend my eyes.

Now, I’ve taught myself a fair bit of code - HTML, C, JavaScript, VB, Python. But nothing quite prepared me for Hugo shortcodes, config files, and the weird little dance they do with themes and folder structure.


The Great Theme Tampering Incident

My first major sin? Modifying files directly inside the theme folder.

Yep. Just dove right into the themes/PaperMod/layouts/ folder like I owned the place. That worked exactly long enough to break everything.

Turns out Hugo expects you to override theme files in your own project’s layout folder, not hack at the original theme like an overexcited raccoon.

Restart #1.


The Broken Search Page Saga

Attempt #2 went better. For a bit.

This time, I even managed to get the layout right. Posts were showing. Styling looked nice. Things were… not awful.

Then I decided to fix the search page.

The built-in search in PaperMod wasn’t working properly. Specifically, after publishing the site, the search bar kept referring back to localhost:1313, like it missed the memo that we were on the internet now.

I tried everything.
Random file edits.
Config changes.
Swapping JS files.
Praying.
Swearing at the keyboard.
Nothing fixed it.

No idea what I broke or how. I just know that after hours of digging through files like a raccoon in a server room. After literally a whole night, I gave up and restarted. Again.

Restart #2.

Turns out the seach page is still a little wonky. But, we won’t talk about that.


Third Time Lucky? Sort of.

Now I’m on what we’ll politely call Version 3.0. It’s the current, live site. And hey, it actually works! Mostly.

There are still little things bugging me. My About page is a bit borked. Some pages don’t behave quite right. There’s definitely some leftover duct tape and sadness hiding in the config file. But for the most part… I’m finally starting to get the hang of it.

I now understand:

  • How Hugo builds the site from content vs layout folders.
  • Where the PaperMod theme pulls its components from.
  • Why the config.yaml file is basically the site’s nervous system.
  • That shortcodes are useful, once you stop being terrified of them.
  • That “just one small tweak” is how websites get set on fire.

Git Happens

I also decided to bring Git into the picture - partly for version control, partly to stop myself crying when something inevitably breaks.

At first I treated Git like a magical time machine I didn’t quite understand. But now I’m actually starting to use branches, commits, and rollbacks like a grown-up. It even connects to GitHub now, which means I’ve officially entered the realm of “slightly too proud of my own repo.” Even if it is set to private. Not quite ready for the public eye, just yet.

It’s not perfect, and I still occasionally break something with a rogue git push, but it’s definitely saved me from at least three meltdowns and one rage nap.


Markdown: The False Sense of Security

Ah yes. Markdown.

It starts so sweet. Headers, bold text, links, it’s like HTML without all the noise. Easy, right?

Except then the theme starts using shortcodes and Hugo adds its own weird rules and suddenly I’m crying into a list.md wondering why a collapsible box inside a bullet point has just detonated my whole layout.

Then came the raw HTML incident.

I wanted to drop in a little inline HTML. Just something simple. A centered image with adjustable size. But when I ran hugo server… nothing. Like it wasn’t even there.

After spiraling into a confused mess and rewriting entire blocks trying to make it work, I finally discovered that Hugo has raw HTML disabled by default for Markdown. One YAML edit later, I was rendering like a boss.
A slightly crying boss. But still, a boss.

It was a real Markdown rite of passage. One that involved sweat, panic, and a newfound respect for documentation that actually explains things.


Still Not Perfect

Now we’re on version 3. This version is live, relatively stable, and only moderately broken.

The About page is still a bit weird. I’m choosing to live with it for now. There are blog posts to write, after all. And if I break everything again, Git’s ready with the reset button.


What Did I Learn?

  1. Hugo is powerful - but only once you understand its structure.
  2. Themes are not your playground unless you copy them first.
  3. Markdown is a trickster spirit disguised as simplicity.
  4. Git is your parachute when you leap face-first into your own mess.
  5. Starting a blog means fighting through a lot of stuff that isn’t blogging.

And honestly? I’m glad I did it.

It may have taken some swearing, three site resets, and a few minor existential crises, but now I’ve got a blog that’s actually mine.
Whether or not I actually write anything deep on it? That’s still up for debate.

But at least I know how to render HTML in a Markdown file now.