Statac

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: true and 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 search searches 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’s debug.Dump prints 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 refresh fetches 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 _site to 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.