Zola, Kita, Netlify & Cloudflare setup -- a couple of 'Why?'s
Table of Contents
Why Zola?
Actually, there is no need to stress over Zola, since I just wanted a blog website. I tried to create the blog in Python/Flask (with templates). However, it comes with:
- Setting up a database
- Database backups
- Deployment problems
- Choosing a server
- etc.
This obviously creates many problems for just a simle blog. Then, I had come across Static Site Generators which turned out to be a game-changer. I had started with Jekyll and spent some time learning it. It required setting up gems, ruby, and so on, though I truly respect the engineering behind it. I had dropped off this progress midway.
When I discovered Zola, it was something I needed:
- Simple
- Fast (built with Rust)
- No assumptions about site structure
- Tera (very similar to Jinja2, which i used in Flask templates)
- Quick to setup
So, just picked it up.
Kita?
I have explored available themes with focus on minimal themes. The best quick matches were Kita and Serene, and I've chosen Kita mainly for the following reasons:
- Minimal
- Organized by tags and date
/tagspage replaces category complexity- Reader friendly: larger font, good colors, etc.
- Quick to tweak
However, I should note that Kita may not be ideal for you since it makes some assumptions about structure. Still, you can adapt it because it runs on top of Zola, but you may need to spend some time on Kita's ecosystem.
Netlify?
Yeah, Github Pages could be used, but Netlify was way simpler than Github Actions: link your github repo, deploy, and add your own domain, that's all.
Used Zola's Netlify setup docs for netlify.toml file.
Cloudflare?
I have had my domain already connected to Cloudflare when I was using Cloudflare tunneling for exposing my development project to public (kinda cheating to premium tunneling tools like ngrok). So, it was just ready and I went with it.
Set up is simple:
-
Add Netlify's suggestions on custom domain settings1:
- Update
www CNAMErecord to the netlify app URL - Add
ALIAS, flattened CNAME, or (I forgot the name)2 record with Netlify's own server (it wasapex-load-bala...)
- Update
-
Wait for changes to propagate
In your provider's (in my case Cloudflare) DNS Records settings
Netlify says these two are more resilient than fallback options (in my case, was A record)
Conclusion
A simple blog with fast setup, no DB, and no deployment headaches. Respect for all engineers who made Netlify, GitHub, Cloudflare, and SSGs possible!