Statac

Statac vs Zola

How Statac compares with Zola, and why you might choose Zola.

Zola is a static site generator written in Rust, begun in 2016 as Gutenberg: “a single binary with everything built-in”. Of the tools compared here, it is the closest to Statac.

Zola 0.23, from August 2026, moved to Tera 2 and replaced shortcodes with components, such as {{ <youtube id="..." /> }}, so a guide written for an earlier Zola may not match it.

Statac is a friendlier static site generator for personal websites. Everything is included, so you can tinker with your site if you want to, but you don’t have to. It is made for the IndieWeb and the social web: feeds, webmentions and social cards are part of it, with no plugins.

At a glance

Statac Zola
Written in Rust Rust
What you install One program One program
First released October 2026 2017
Version compared 0.7.0 0.23.6
Licence MIT or Apache-2.0 EUPL-1.2, with older code under MIT
Templates Jinja, as MiniJinja implements it Tera 2, in the style of Jinja
statac import reads its sites Yes

Where they are alike

  • Markdown read by the same library, pulldown-cmark, with footnotes, task lists, heading ids and GitHub-style callouts.
  • Links within the site checked, headings included. Zola checks those you write as @/path/to/file.md.
  • Sass through the same library, grass.
  • Code coloured from TextMate grammars. Zola carries themes, light and dark among them. Statac carries none: set code_colours: true and copy a theme’s colours into your stylesheet.
  • Resized copies of images, AVIF among them.
  • Drafts, pagination, tags (Zola’s taxonomies), several languages, and redirects from old URLs (Zola’s aliases).
  • A search index for a search box in the reader’s browser, written at each build once you add the box.

What Statac does differently

  • Problems at the file, line and exact text, with a suggestion if there is a good one and a page explaining each kind:

    warning  Broken link: nothing is published at `/about-us/`
      content/posts/first-post/index.md, line 5
       5 │ Read more [about us](/about-us/).
         │                      ^^^^^^^^^^
      Did you mean `/about/`?
      More: https://statac.dev/e/broken-link/
  • The debug panel. Under statac serve, the debug panel lists every name a template can use on the page, with its value and the file and line it comes from. Zola’s __tera_context prints the values alone.

  • Images need no template work. Statac turns a Markdown image into AVIF copies in several widths, with a JPEG or PNG fallback, in a <picture>. In Zola, templates and content call resize_image and choose the sizes and formats.

  • Search with its own code. Statac’s index is a script that searches: it matches other forms of a word in 31 languages and suggests words when it finds nothing. statac search runs the same search in the terminal.

  • Maths without a script. Statac turns $...$ into MathML.

  • Social cards. Statac draws a social card for each page whose layout asks for one, from a background and a font you supply.

  • Webmentions, fetched by statac refresh and shown by your layout.

  • Scheduled posts. A post dated ahead waits: the first build on or after its date publishes it.

  • A {{ in a post is text. A post calls a snippet as @name(...). Zola 0.23 runs content as a Tera template, which gives it the whole of Tera, and a literal {{ goes inside {% raw %}.

  • Quotation marks, dates and digits in each language. Statac takes them from the Unicode CLDR for eight languages.

Why you might choose Zola

  • Years of use. Releases since 2017, a community forum, and answers already written to most questions. Statac was first released on 10 October 2026, and has one maintainer.
  • Links to other sites checked. zola check fetches each external link in the content. Statac doesn’t check them, since a build fetches nothing.
  • Feeds, a sitemap and robots.txt with no templates to write. Zola has its own templates for Atom, RSS, the sitemap and robots.txt, which a site can replace. Statac builds each from a template of the site’s own; the docs have Atom and RSS templates to copy.
  • A search index for the library you choose. Zola writes its index for elasticlunr or Fuse, with the fields you choose.
  • More in a code block: line numbers, highlighted lines and hidden lines, set in the opening fence. Statac numbers no lines, though a library in the browser can.
  • Front matter in TOML, or YAML. Statac reads YAML.
  • Data from files or the web. load_data reads TOML, JSON, CSV, BibTeX, YAML and XML, from a file or a URL. Statac reads data files in YAML or JSON.
  • Themes. 40 in Zola’s gallery, and a site can replace any of a theme’s templates. Statac has no themes; the drop-ins are templates and snippets to copy.
  • HTML minified with minify_html. Statac minifies nothing.
  • Packaged nearly everywhere, from Homebrew and winget to Nix, Flatpak and the BSDs, with guides for thirteen hosts. Statac comes through Homebrew, Scoop, a script and its own packages, and its docs say to copy _site to any host. Its own packages for macOS aren’t notarised, so installing one without Homebrew takes one more step.

Moving from Zola

statac import keeps a Zola site’s URLs, turns its TOML front matter into YAML, and turns shortcodes and Zola 0.23’s component calls into snippet calls. It writes no templates, and IMPORT.md lists what it couldn’t bring across. From Zola gives the details.

Versions compared

Checked on 26 October 2026, against Statac 0.7.0 and Zola 0.23.6 (12 September 2026), from Zola’s documentation, its changelog and its repository. A later release of either may change what this page says.

Something unclear or wrong? Open an issue.