Zola
Zola is a static-site-generator written in Rust and shipped as a single binary — "Your one-stop static site engine." Its pitch is zero-dependency convenience: "Forget dependencies. Everything you need in one binary" — Sass compilation, syntax highlighting, table-of-contents, shortcodes, internal linking, search, and image processing all built in. Source: official getzola.org.
How it works
- Runtime: a dependency-free Rust executable (templating via Tera); Markdown content, static-file output that scales trivially.
- Build speed (its headline): "Blazing fast" — "the average site will be generated in less than a second, including Sass compilation and syntax highlighting."
Place in the genre — the Rust single-binary contender
Zola is the direct counterpart to hugo: both are single-binary, build-speed-first SSGs with no Node/Ruby toolchain (hugo in Go, Zola in Rust). It adds another member to this spoke's "build speed" axis (eleventy / hugo / Zola) — distinct from the "runtime core-web-vitals" axis astro competes on (the "two distinct fasts" split). Its all-batteries-included stance (Sass/search/images in-binary) contrasts with the plugin-driven eleventy.
Re-read 2026-09-02 (hunted at the curator's request)
Homepage claims above stand. The repository and documentation add four things the homepage does not.
Still 0.x, and the release rhythm is lumpy. getzola/zola: 17,391★, 1,178 forks, 192 open
issues, created December 2016, last push 2026-08-31, not archived. Current version is
v0.23.4 (20 August 2026) — nearly ten years and no 1.0. And the cadence is not steady: v0.22.1
landed in January 2026, then five releases between 5 and 20 August 2026 (0.23.0 through
0.23.4) after seven quiet months. A single-maintainer-shaped pattern, though nothing fetched says who
maintains it.
The licence is EUPL-1.2. The European Union Public Licence — a copyleft licence with an explicit compatibility list, and the only one of its kind in this spoke. It joins Pelican's AGPL-3.0 and Publii's GPL-3.0 as evidence that the MIT/Apache monoculture in this corpus was a property of which generators had been paged, not of the genre. What EUPL-1.2 means for someone building a commercial site is not addressed anywhere fetched.
Tera, and no structural opinion. Templating is Tera, "similar to Jinja2, Django templates, Liquid, and Twig", and the docs make a point of restraint: "Unlike some SSGs, Zola makes no assumptions regarding the structure of your site." The built-in list is long — syntax highlighting, search-index building, Sass, image processing, multilingual, taxonomies, feeds, sitemap, table of contents — which is the single-binary bet from the homepage, now itemized. The overview page says nothing at all about plugins or extensibility; that is an absence on one page, not a proven absence.
Search: Zola ships the index and nothing else
This is the part worth the spoke's attention, because it is the second point on a line Pagefind had to itself.
Zola's search generates an index in four formats — elasticlunr_javascript, elasticlunr_json,
fuse_javascript, fuse_json — for elasticlunr, fuse.js and tinysearch. Then it stops:
"Zola makes no assumptions about your search function and doesn't provide the JavaScript/CSS code to
do an actual search and display results." You get a file. The querying, the UI, the result rendering
and the size budget are yours, with a reference implementation offered as an example.
That is the opposite trade from Pagefind, which ships a chunked index and a search-UI component, and whose whole design argument is that "searching in the browser only ever needs to load a small subset of the search index" — measured on this wiki's own build at ~170 KB for a cold first search against a ~10 MB total index over 2,585 pages. Zola's documentation gives no size figure of any kind: no index size, no page-count guidance, no warning about growth. For a built-in feature of a tool whose headline is "blazing fast", the one number a reader would need is absent.
Whether an elasticlunr or fuse index must be loaded whole is not stated by Zola's docs and is not established anywhere in this corpus — it is the question the comparison turns on, and it stays open.
Related
static-site-generator · pagefind · hugo · eleventy · jekyll · jamstack · pelican · publii · core-web-vitals · speedlify