Setting up your own blog

Horace Guy published on
4 min, 655 words

Categories: meta

I've been wanting to publish online for some time. I was very young during the Wordpress wave, so I was never really drawn into it.

Jekyll #

I learned early about static website, first with Jekyll and Github pages, in 2016. At the time, I was using Windows 10 and wasn't quite experienced. Since Jekyll is written1 in Ruby, I needed to bootstrap Ruby and the many gems required to run the blog. It was painful. I couldn't understand the cryptic error messages ; for every update everything broke, I don't think I used rbenv at all, etc.2.

I still managed to publish to Github pages somehow, and I was very proud of it. However, a few days after the first post, I gave up. I still learned to write in Markdown and initiated my software journey. It was somewhat fun to play with the terminal, the filesystem, the web.

Hugo #

Fast-forward three years since my failed attempt. This time, I had some content: a summary of a peculiar political book I was particularly excited about. I also had a bit more experience with the terminal and I was using Windows Subsystem for Linux (WSL) to have a *nix shell available.

I wrote the post first, in Markdown, then I hunted online for a static site generator (SSG) easier than Jekyll. This is when I found Hugo: a single binary and you're good to go3

The next step was finding a good theme. Once I found one that seemed to fit the bill (with e.g. built-in search), I needed to wrestle with git submodules to make it work.

In fine, I managed to publish my content to the world, this time using Netlify to have more flexibility than Github pages. It worked okay, but I had some troubles with large image files that took a very long time to load. Moreover, the built-in search wasn't very good and I wasn't excited about the whole look of the website.

Zola #

Two years later: here we go again. This time, I have a few years of experience under my belt, I am using Linux as my daily-driver (and MacOS at work). I'm much more comfortable using a terminal and software developemnt in general.

A friend of mine had been excited about Rust for a while, and I knew that there were some SSGs written in it. So, I browsed Zola themes hoping to find a decent-looking website. Since there aren't that many themes for Zola, I quickly found a good one4.

With this setup, I had everything I was looking for:

  • A single binary: no dependencies
  • Blazingly fast
  • $\KaTeX$ support
  • A good search UI & UX
  • Image processing built-in
  • A nice theme
  • Bulma CSS, easy for the CSS newbie that I am

So i just went for it on a whim. It took me three hours to write my first post, set the dev environment up and deploying it to Cloudflare Pages. I even have web anayltics for free, without additional javascript5: no cookies, yay!

Overall I am very happy with the experience so far. The website could be leaner and faster, but I believe it is fast enough. For now. And it's free (as in beer).

1 By Tom Preston-Werner, founder and former CEO of Github.

2 Later on, I learned that I wasn't the only one experiencing this fatigue.

3 No pun intended since Hugo is written in Go.

4 DeepThought

5 Actually this theme ships with the Google Analytics script, since there is no tree-shaking nor dead-code elimination (yet)