So I decided to rewrite my website. Again. This time because the previous version kind of died: I’m struggling to run Jekyll to build a new version and some of the assets I used via a CDN moved to a new path. So I decided to rewrite it. In Rust of course, to follow the trend.

A bit of history

I’ve been building websites for me since my childhood, a looooong time ago. But, unfortunately, I did not keep the original files, nor even screenshots. I also did not keep a log of them either. I’m not sure when I had my first website online :/

I made my first website in Adobe Flash. Back in the 2000s that was what the cool kids used. Of course there was an HTML file, but only to display the SWF. I remember some rotating spheres in the right upper corner, simulating a 3D effect. I also made some [bad] platform games to download. This was hosted for free on some host/provider I don’t recall and I also had a childish .go.there domain (yeah, I was a kid). And no HTTPS, this was ~two decades ago. I don’t have an exact time in mind, but it was around \( 2006 \pm 1 \).

The second version was a combination of Flash and custom HTML. I remember using Macromedia (!) Dreamweaver to make multiple pages. What a progress! This time I used a different host, also for free. I have an e-mail from April 11th 2008 when I signed up for FreeWebs.com to host this version. It went live on that date and lasted until the next iteration.

The third version was a Wordpress on Blogger/Blogspot. Also for free. Way less cool stuff, like the animated rotating spheres from the first version. But this time it was not static! It had an admin page, a content editor and people could comment on my glorious posts. All of that made possible by Wordpress.

The fourth version went live on September 8th, 2018. I decided to fall back to a static website, hosted for free on GitHub Pages. I built this version using Jekyll. All the HTML and CSS were hand made by me :) This is the version I am retiring now and looked like this:

The new version

For my newer website, I wanted something that could last longer. I don’t want to go through all the hassle of searching for a new tool or platform, migrating all the pages, making sure images/links/formatting are correct, fixing links to external resources, writing/modifying website themes to suit my taste, etc, all over again.

I also want my pages to load fast, have as minimum of JavaScript as possible, display correctly on most browsers and devices, be easy to add new content, and, of course, look good.

With these requirements in mind, I decided to go with Zola: an open-source static website generator. Zola is simple enough to set up, doesn’t suffer from feature creep, has an active forum to ask for help, with an active and welcoming community, has many themes published, is actively maintained, is super fast and is written in Rust 🦀

Zola alone does not solve all my problems. I learned from my mistakes and past experiences, so:

  • I wrote how to get Zola, the version I am using and the commands to update/add/publish new content. Of course, most steps are in a script that I run. I am too lazy to type stuff all the time.
  • As with the previous version, I generate my own HTMLs and keep them in a repository that I control. I could use a CI/CD system here, for the sake of “automation”. But I prefer to run zola build myself, double check the resulting HTML files and only then git add && git push. This is not hard and adds some peace of mind over mistakes.
  • Choose a theme that contains no external resources, pretty much all styling is self contained. And no JavaScript!
    • I chose Terminimal theme. Not bare bones though, I made a few modifications here and there to suit my taste.
  • I like equations and I am not aware of a way to use \( \LaTeX \) without JavaScript. So I added KaTeX to render my precious maths. Having some JavaScript because it is useful, not because it is a trending buzzword in some online social network, doesn’t hurt (much).

All of that is good. But Zola, like any tool, is not perfect. I had a few challenges with the migration from Jekyll to Zola:

  • Zola does not support abbreviations via Markdown/CommonMark. I’m talking about the abbr HTML tag that looks like this (hover your mouse there). I like this functionality, but I had to replace all the markup I had with HTML tags in my files. Annoying, but doable.
  • Footnotes work, but are a bit rudimentary: I need to manually create the list with footnotes and the anchor links do not work. Not sure if this is an issue with the theme I chose or with Zola itself.
  • Zola’s internal sorting algorithm is case sensitive. This can be annoying in some cases. One of them is to sort my tags: C++ comes before analysis for example, when it should be the opposite.
  • No lazy loading of images. Again, not a critical issue, but lazy loading images can benefit loading pages on limited internet connections. There might be downsides from lazy loading, but I am not aware of them. There’s an open feature request at the time of writing, so it is a question of time until this arrives :)

Apart from these hiccups, “converting” my website from Jekyll to Zola was straightforward. After all, it’s all Markdown files.

The future

What’s next? I have a new website, what do I do with it?

Something ancient on my TODO list is to get a nice domain name. I’m not creative enough to think of one and my interactions with chatGPT were “inconclusive”. Having yet another new website can be an excuse to finally get my own domain?

I want to write more and publish what I write. I have been collecting notes for a while and could turn some of those into interesting articles. I invested many evenings into this rewrite, I can’t let this new website collect dust.

I also have many drafts of posts/articles I started and never finished. And I have a “list of ideas to blag about” that only grows. Some of those items should materialize.

Maybe I will write something soon™️. Or make a new website. What will happen first?