Statac vs Hugo
How Statac compares with Hugo, and why you might choose Hugo.
Hugo is a static site generator written in Go, first published in 2013. It is one program, built for sites of any size, from a blog to documentation in many languages, with a large gallery of themes.
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 | Hugo | |
|---|---|---|
| Written in | Rust | Go |
| What you install | One program | One program, in one of four editions. Dart Sass for current Sass, Go and Git for modules. |
| First released | October 2026 | 2013 |
| Version compared | 0.7.0 | 0.168.0 |
| Licence | MIT or Apache-2.0 | Apache-2.0 |
| Templates | Jinja, as MiniJinja implements it | Go templates |
statac import reads its sites | Yes |
Where they are alike
- Markdown with front matter, folders as sections, tags, pagination, drafts, scheduled posts, redirects from old URLs, and related posts.
- Several languages in one site, kept apart by folder or by file name.
- Template tags in the content: Hugo’s shortcodes, Statac’s
snippet calls. Parts of the Markdown a site
builds its own way: Hugo’s render hooks, Statac’s
snippets/markdown/. - Alerts written as
> [!NOTE]. Statac builds them as callouts; Hugo hands them to a render hook the site writes. - Curly quotes and dashes by default, Sass, and asset file names with a content hash.
- Code coloured during the build: by default in Hugo, and in Statac once
you set
code_colours: trueand copy a theme’s colours into your stylesheet. - Maths built as MathML: in Hugo, by a render hook that calls
transform.ToMath; in Statac, from$...$.
What Statac does differently
-
Problems at the file, the line and the exact text, with a suggestion if there is a good one, and a page for each of its 158 kinds. Statac checks templates before it builds any page, and a value a template asks for that isn’t set stops the build.
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/ -
Statac checks every link within the site on every build, down to the heading. See How Statac checks links.
-
Images need no template work. Statac turns an image in the Markdown into AVIF copies in several widths, with a JPEG fallback, without the image’s metadata. Hugo’s image processing makes AVIF and WebP in every edition, and a site calls it from a template or a render hook.
-
Search built in. Once you add a search box, each build writes a search index for it, and
statac searchsearches from the terminal. -
The debug panel. Under
statac serve, the debug panel lists every name a template can write on the page open, its value there and the file and line it came from. Hugo’sdebug.Dumpprints a value as JSON. -
Social cards that Statac draws, from a background and a font you supply, for each page whose layout asks for one, and webmentions that
statac refreshfetches and keeps with the site. -
A failed build leaves the published site unchanged. See Building and publishing.
Why you might choose Hugo
- Years of use and a large community. Hugo has been in use since 2013, has over 90,000 stars on GitHub, and most questions already have answers. Statac was first released on 10 October 2026, and has one maintainer.
- Themes. Hugo’s gallery lists 319 themes, and modules share templates, content and assets between sites. Statac has no themes or plugins, by design: a site’s templates are its own, and the drop-ins are there to copy.
- More content formats. Markdown, HTML, Emacs Org Mode, AsciiDoc, Pandoc or reStructuredText, with front matter in YAML, TOML or JSON. Statac reads Markdown or HTML, with YAML front matter.
- A content model for large sites.
Content adapters
make pages from data while Hugo builds the site, and a site declares
taxonomies of its
own, such as authors, each with its own pages. Statac has tags,
series, and lists a page makes with
posts:. - A front-end pipeline. Hugo bundles JavaScript and TypeScript with esbuild, builds Tailwind, runs PostCSS, minifies, and adds subresource integrity hashes: see its features. Statac publishes scripts unchanged.
- More in a code block. Line numbers and highlighted lines, set in the opening fence, and “approximately 300 languages” (Syntax highlighting). Statac colours 227 and numbers no lines, though a library in the browser can.
- Feeds and a sitemap from templates Hugo carries:
RSS for the home page, sections,
taxonomies and terms, and a
sitemap. Statac builds a feed
if a list’s
feed:line asks for one, from the site’s own template: the docs give Atom and RSS templates and a sitemap to copy. - Deploying from the command line.
hugo deploy, in the deploy editions, uploads what changed to Amazon S3, Azure Blob Storage or Google Cloud Storage, and the docs have guides for many hosts. Statac’s docs say to copy_siteto any host. - Go templates, which a team already working in Go knows.
Moving from Hugo
From Hugo lists what statac import reads from a Hugo
site. The import keeps its URLs, writes no templates, and lists in
IMPORT.md what it couldn’t bring. Arriving from another
tool explains how to run it.
Versions compared
Checked on 26 October 2026, against Statac 0.7.0 and Hugo 0.168.0 (13 October 2026), from Hugo’s documentation. A later release of either may change what this page says.
Something unclear or wrong? Open an issue.