Switched to Zola
I switched my blog from WordPress to Zola. I was managing two WordPress instances since last quarter of 2019. One as my personal website home and other for as my blog. Before that I was using Hugo for my blog. Before that Stagen, a static site generator developed myself written in JavaScript (Node.js). Before Jekyll. Before that, WordPress again.
So, you got the idea of my habit of switching underlying technology for my blog. Not often, as there are many months and even years of gap between the switches, but still I do that. Additionally, I try to write about the switching in the blog itself. Unfortunately I missed to write one when I switched last time from Hugo to WordPress. Here are the posts about switching before that:
and I was using WordPress before that, since 2009.
I also used blogger and wordpress.com before that but I did not keep any record of that.
What Made Me to Switching this Time?
That too after a long gap of 6 years!
There are few reasons.
First Reason
The tripping point was when I updated my DigitalOcean VPS server from Ubuntu 22.04 to 24.04. Really, Ubuntu is not the reason, rather MySQL!
After the update. I started noticing my server responding very poorly. It was very frustrating to wait for things even when trying to access the server simply through SSH. Inspecting my server resource usage, I found MySQL was consuming most of the memory. It was using more than 50% of my VPS just having 1 GB of RAM. My websites were not receiving much traffic recently, I think. Thus the high memory usage did not make much sense.
I did not try to optimize MySQL. There was another reason for that.
Second Reason
Tired or bored updating WordPress. Even though, I did not want to change anything in my website, I was still forced to update to latest version of WordPress periodically, mainly for security reasons. It did not make much sense to use for my website not using or having any fancy dynamic web site features.
Third Reason
I started loving Rust!
This is the one reason I chose Zola over other static site generators. Recently I started to program serious things in Rust. I wrote a small program in Rust, to make it efficient, fast and to reduce memory usage while deployed on a server I manage for my client. I was really impressed by its performance. I knew it would but it was sense of accomplishment to do that in a system programming language like Rust. I would not think about doing that in C. My next choice was Go, but its memory usage was much higher during my preliminary tests.
Then I was deciding to switch to a static site generator. I just searched to see if there is any static site generator written in Rust, then I found Zola. I looked at its features and found it having all the features I wanted.
Things I Liked in Zola
- It is written in Rust and open source. So, I thought I can customize if needed in the future.
- It is fast.
- Template language. It uses Tera, which I felt at home as I am very experience with Twig of Symfony and Blade of Laravel.
- We are not forced to use any specific theme to start with. We can start wit a simple set of template files and expand as we go. That is what I currently doing.
- Sections
- It is a nice feature. I don't know if Hugo having something similar. This feature will allow me to have different sections in my website for different purposes. Now I made my blog as a section of my website, thus I no longer manage separate sub domain/website to host my blog posts. I can add more sections in the future if needed to satisfy different needs.
- No hard dependencies on JavaScript.
- There is no mention of JavaScript in the documentation!
- However, we can add JavaScript our own way. Which I already did for search page and few of the blog posts. So, there is no site wide JavaScript to slow down my website. It is loaded only when needed on specific pages.
Things I Disliked in Zola
In fact, none. I am very happy with Zola at this moment. Its documentation is not comprehensive, but it is not a problem as I am not a newbie to static site generators and coding in general.