Contents

Version Zero: My Site Is Finally Not Embarrassing

Eat, Pray, Launch

I’m finally content with this site. For now.

A few weeks ago, this site was an extremely basic blog with no content. Now it feels—dare I say—world class. Even if nobody reads it yet.

Featuring:

  • A (mobile-friendly!) UI I’m not embarrassed to show off
  • Basic Search Engine Optimization
  • A CMS so I stop hardcoding everything
  • A Staging Environment, so I can break it safely
  • Integrated Search. And it actually works
  • Some almost-tolerable content
  • Fancy CSS (please clap)
  • Sagas (ongoing series)
  • A Custom Email Domain (to impress potential employers)

It looks pretty good for something built by a backend engineer. It’s relatively polished. It has all the essentials. And best of all, I don’t hate it.

That said, there’s a lot more work to do.

Here’s what I’ve learned so far:

What I learned

Functional Site != Good Site

My site worked pretty soon after I first deployed. But the UI was bad. Or even worse: it was unimpressive. I’d look at it and want to go to sleep.

Functional isn’t the same as good. I don’t just want something that technically works. I want my site to surprise people. I want people to laugh or smile when they read through “Sagas” instead of “A six part series” or whatever. I want my site to reflect me: chaotic on the inside, suspiciously well-put-together on the outside.

Keep Working. It Will Get Better

I have been discontent with the state of this site since I put out my first post. Especially with the UI, which was the biggest challenge as a logic-focused guy. But, after a long slog through DOM elements and CSS styles, it looks fine. It looks better than fine actually. It looks GOOD.

Despite the setbacks, despite the esoteric bugs with no information online, and despite having no clear vision as to what I was actually building, it somehow came together.

Hugo Sucks

I used a static site generator called Hugo. It’s great for instant gratification, and awful for long-term commitment. I feel like I’m in an abusive marriage with a machine that controls all of my assets. Or at least the ones in /public.

The templating syntax feels like punishment for my past sins. I still don’t understand it. And I used it to build this site.

I made fun of Next.js a lot. I called it “React with training wheels” and assumed it was a conspiracy by Vercel to sell more subscriptions. But it was a smarter choice. Next.js allows you to turn React into static assets. It would have made my life easier.

Or I could’ve used Astro which would give you JavaScript and React, plus markdown out-of-the-box.

Smashing Magazine made a big deal about switching to Hugo. Articles about their transition got me to take the plunge. Funny how their ‘we changed our minds’ posts seem buried in Google. I didn’t find those until recently.

But, making mistakes is part of the learning process. Maybe someday I’ll reimplement this thing from scratch with Next.js. But for now, I’m just happy it works.

Moving On

Watching this site evolve from nothing into something I’m legitimately proud of has been extraordinarily special to me. It’s different than building an internal tool for a Fortune 500. It’s different than building a product I would never buy myself.

It’s like watching the formless aspects of my own mind take shape. Like seeing vague thoughts, and unexplored ideas bubble to the surface and take on a life of their own. Though they may be incoherent, ridiculous, or banned in the United Kingdom, they came from me, and me alone.

It might not be perfect, but it’s mine. And for Version Zero, that’s enough.