Resurrecting my blog
For a while I wanted to restart my blog and this is what I'm doing now.
My previous attempt died due to lack of time and lack of topics. Not sure about this one, there are a few topics I would like to cover and will see what happens next. Even if it will only serve as a sort of an archive for myself that's already not too bad. Format of a blog is probably better than Google Docs as it may sometimes be helpful for someone else.
I plan to write about technical topics. Mostly describing things I implemented, configured or even built myself. My approach and solutions can (at least sometimes) be weird. When I do something, not only I'm solving a particular problem but also I'm doing it in a way that I like (somewhat in a sense of art maybe). As a result my solutions may not be the most practical or optimal.
Technical side of this blog
- This blog is self-hosted. It runs on my own self-build server under FreeBSD.
- The web server is nginx
- Except for the comments this blog is fully static, built with Zola static site engine.
- Comments are handled with Remark42 commenting engine.
Why static site?
In its previous incarnation my blog was powered by Drupal and I couldn't help but feel that the complexity of keeping content in the database and regenerating it for every GET request was not worth it. I assume there's a caching layer so not really for every request, but that does not change the overall idea: the complexity of the system was much higher that what's needed to serve a simple blog.
Naturally when I first read about static site generators I wanted to give them a try and this was one of the things that fueled my desire to resurrect the blog.
Why Zola?
Quick search for static site generators reveals a great number of those. Just a few examples: Jekyll, Gatsby, Hugo, Next.js, Eleventy and there are more. However I'm picky and on top of required functionality I care about a number of things for example speed, internal details (language the tool is written in), simplicity.
- Fast - the faster the better as long as it does not sacrifice too many features.
- Strictly typed compiled languages are strongly preferred over interpreted loosely typed one.
- Javascript can only be acceptable when there are no other alternatives even at a price of lost features.
With these requirements I ended up looking at Hugo and Zola. Hugo scared me a bit with the large documentation section while Zola looked relatively simple. Plus I was eager to try a new player in this area, which Zola is.
Theme
Choosing a theme turned out to be the hardest problem. I first started with Terminimal but soon found that contrast was too rough on my eyes. I then tried a number of different themes and eventually settled on a slightly modified Terminimal with Selenized colour palette. I use Selenized (and previously Solarized) as my terminal and where possible editor colours and quite happy with it. I think it is kind to my eyes and is easy to read so I'm sticking with it at least for now.
Why Remark42?
Only things not possible with a static site are (surprise!) dynamic things. I mostly don't care about them at this point but thought that it might be nice to have comments. To my surprise I found not only third-party services for this but also a self-hosted solution. I was even more surprised to find that one of the popular solution Remark42 was written by Umputun also know as producer of a couple of nice podcasts in Russian Радио-Т (Radio-T) and Еженедельный подкаст - UWP. I was further amused to find a port of Remark42 for FreeBSD at which point I know that at least I will try Remark42.
Overall impression
I'm quite happy with this setup. So far I was disappointed mostly with themes,
specifically with a lack of standards across those. One would think that at
least for a simple site it should be possible to just change theme =
in the
config and get a new look. Unfortunately it does not work like this. Some
themes among those that I tried insist on certain content structure others
require extensive configuration. So overall changing a theme is quite a bit of
work.