While my previous Jekyll-based website wasn't horribly complex, maintaining it was still a chore. Like most software written in a scripting language, Jekyll has a lot of run-time dependencies that must be installed for it to function. Given that I switch between a few different computers running different operating systems, making sure that all my Gems were up-to-date was annoying. Since I'm not getting paid to make my own website, I figured that I might as well migrate it to a simpler static site generator.
With the requirement that it be written in a compiled programming language, there aren't that many static site generators left. I narrowed it down to Hugo and Zola---written in Go and Rust, respectively. I had read far less about Zola than I had about Hugo, but I was impressed to see that Zola made it into the default Fedora repositories. It had to have something going for it! I gave it a try and was impressed, so that's what's building this website.
In both the last version of this site and this new one, I started with pre-made themes instead of rolling my own. There are a ton of Jekyll sites out there using the default Minima theme, so I spiced it up a little with the Solarized color scheme and a
prefers-color-scheme-based dark and light mode. This time around, I'm starting out with the nicely designed After Dark theme. Once we're up and running, I'll mess around with the CSS to make it more unique.
Switching hosting providers🔗
As much as I liked the convenience of
git push-ing to GitHub and having my site immediately update, GitHub also still only does Jekyll builds for Pages. That means that I'd either have to have a Git repo specifically for the output or use a different hosting provider. Although the first option is certainly serviceable (and what I'd do if my website made me money), I also figured that this would be a good time to check out a few other hosting providers.
One of the simplest ways to host a static website is through a storage provider like Amazon S3 or Google Cloud Storage. Netlify is also popular, but I couldn't get it to work well with my the way I store all of my personal projects (a huge monorepo). I don't mind running a deploy script instead of
git push, so I went with Google Cloud Storage. Another huge advantage of this approach over my previous setup is that now I can host image files of any size without having to store them in a Git repository.
If you have questions about the setup or why I chose to do it the way I did, please send me an email.