Setting up your own blog

blog
CDN
static
serverless
meta
Author
Published

September 7, 2021

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 go!3

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 one 4.

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!

Some posts in my blog

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).

Footnotes

  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)↩︎

Reuse

Citation

BibTeX citation:
@online{guy2021,
  author = {Guy, Horace},
  title = {Setting up Your Own Blog},
  date = {2021-09-07},
  url = {https://blog.horaceg.xyz/posts/static-blog/},
  langid = {en}
}
For attribution, please cite this work as:
Guy, Horace. 2021. “Setting up Your Own Blog.” September 7, 2021. https://blog.horaceg.xyz/posts/static-blog/.