Hello, Hugo!
Table of contents
As someone who has always appreciated clean, fast, and modern tools, I initially chose Zola to build my homepage. Its simplicity and Rust-based speed made it an excellent starting point. However, after almost 4 years of happy usage, I found myself transitioning to Hugo. Here’s a breakdown of why I made the switch and how the two compare based on my experience.
What I Loved About Zola
Simplicity
Zola’s minimalistic approach is a dream for developers who want to get up and running quickly. Its configuration system, based on TOML, is easy to understand, and the Tera templating engine is intuitive, especially for those familiar with Python’s Jinja2.
Speed
Zola is fast. The Rust-powered build process felt instantaneous for my medium-sized site, which was a huge draw initially.
No External Dependencies
One of Zola’s standout features is its lack of external dependencies. It’s a self-contained binary, making installation and setup straightforward.
Why I Switched
My interest was warmed up by my tries to move more and more of my projects to Golang. Unfortunately I couldn’t be good at learning Rust, so finally I found myself doing some of the scripting and backend jobs on Go. I found it’s templates more flexible and in many cases simpler than Tera or Jinja.
Golang
My interest to Go is the main reason why I made the switch
Smaller Community
Zola’s community, while supportive, is relatively small. I occasionally struggled to find solutions for niche issues, while Hugo community is much larger.
Why Hugo Was the Right Move
YAML configuration
This was the first bonus I got 😄 While I can’t say that something is wrong with TOML, I find YAML to be the most clear human-readible format.
Feature-Rich Ecosystem
Hugo has a ton of features, many of them I will need to learn. The templating mechanism is transparent in using partials, the thing I never loved in Tera is how the inheritance works with {% extends %}
and so on.
Active Community and Documentation
Transitioning to Hugo felt seamless because of its active community and thorough documentation. Whenever I ran into an issue, I could easily find a solution, thanks to its extensive tutorials and examples.
Files organization
I found the structure of hugo source more organized and logically cleaner. I can’t say that it was a problem in Zola, but personally I love how it is organizaed in Hugo.
Migration Challenges and Tips
Theme porting
I started with porting the nano theme to Hugo, it was a bit of challenging but in general nothing that you should worry about. Overall everything was done in several night hours of work – with great inspiration and passion 😄
Content structure
Hugo’s posts are organizes in slightly different way than in Zola. It is still Markdown, but taxonomy, post parameters are slight different. But small practice with sed is never the wrong thing 😉
Building pipelines
While Zola is the single binary and super-easy to use, Hugo requires some installation. But once again – it’s only change curl to snap.
Final Thoughts
I love Zola, I won’t give up watching this project and will probably continue contribute in themes. For now, lets move on with Hugo.