Getting Started with Zola

published:

tags: [ #zola, #static-sites, #getting-started ]

Zola is a fast static site generator written in Rust. Unlike Hugo or Jekyll, Zola ships as a single binary with no dependencies — no need for Ruby, Node.js, or Go runtimes.

Why Zola?

There are plenty of static site generators out there, so why choose Zola?

  • Speed — Zola is incredibly fast, building most sites in milliseconds.
  • Single binary — Download one file and you're ready to go. No package managers, no runtime dependencies.
  • Built-in features — Sass compilation, syntax highlighting, search indexing, and feed generation are all included out of the box.
  • Tera templates — Zola uses the Tera templating engine, which has a familiar syntax if you've used Jinja2 or Twig.

Project Structure

A typical Zola project looks like this:

my-site/
├── config.toml
├── content/
│   └── blog/
│       ├── _index.md
│       └── my-first-post.md
├── static/
├── templates/
└── themes/
  • config.toml — Site-wide configuration (title, base URL, theme, etc.)
  • content/ — Markdown files organized into sections
  • static/ — Files copied as-is to the output (images, fonts, etc.)
  • templates/ — Tera templates for rendering pages
  • themes/ — Third-party themes installed as git submodules

Creating Content

Content in Zola is written in Markdown with TOML front matter. Every Markdown file starts with a +++ delimited block:

+++
title = "My Post Title"
date = 2026-02-10
description = "A short summary of the post."
[taxonomies]
tags = ["example"]
+++

Your content goes here.

The <!-- more --> comment can be used to define where the summary ends and the full content begins, which is useful for blog listing pages.

Next Steps