Static Site Generator Landscape: A Reference Guide
In Posts
A broad catalog of static site generators organized by language, ecosystem, and publishing focus.
Static site generators span a wide range of languages, runtimes, and publishing models. Some are general-purpose build tools, while others specialize in documentation, scientific publishing, blogs, books, or framework-based applications.
This reference organizes the landscape by ecosystem and highlights the architectural focus of each generator.
JavaScript and TypeScript
General Purpose and Content-First
- Eleventy (11ty) : Node.js-based generator supporting Liquid, Nunjucks, Markdown, WebC, and multiple other templating languages, with zero client JavaScript by default.
- Astro : Component-islands architecture supporting React, Preact, Svelte, Vue, SolidJS, and plain Markdown or MDX with partial hydration.
- Hexo : Fast Node.js blogging engine with extensive plugin and theme ecosystems.
- Lume : Deno-native static site generator supporting Nunjucks, Vento, JSX, Markdown, and TypeScript.
- Metalsmith : Functional, plugin-driven file manipulation pipeline for Node.js.
- Assemble : Classic Grunt and Gulp-era generator powered by Handlebars.
- Harp : Zero-configuration web server and static engine supporting Jade/Pug, Markdown, and EJS.
- Phenomic : Modular static site compiler for React and Webpack ecosystems.
- Wintersmith : Flexible, multi-format Node.js site generator.
- DocPad : Early extensible Node.js document management and site builder.
- Punch : Conventions-based site generator using Mustache.
- Blacksmith : Logic-less template engine driven by Director and Plates.
- Capri : Vite-based static compiler supporting partial hydration across diverse frontend libraries.
- Elder.js : Opinionated, SEO-optimized static site generator designed for Svelte.
- iles : Vite-driven static generator featuring islands of interactivity for Vue, Preact, and Svelte.
- Abell
: Low-level, lightweight static generator using custom
.abellcomponent syntax.
React Frameworks and Static Export
- Next.js
(
output: 'export'): Full static HTML export from React server and client components. - Gatsby : React and GraphQL-based static generator with an extensive plugin ecosystem.
- React Static : Minimalist, progressive React-first static site framework.
- Cuttlebelle : React-driven generator that decouples data and editing from code components.
Vue.js Ecosystem
- Nuxt
(
nuxi generate): Prerenders Vue.js applications into crawlable static HTML. - VitePress : High-speed Vue 3 and Vite documentation generator and successor to VuePress.
- VuePress : Classic Vue-powered static site generator using Markdown and Webpack.
- Gridsome : Vue 2 alternative to Gatsby powered by a local GraphQL data layer.
- Saber : Extensible Vue-based static site generator with automatic routing.
Documentation and Technical Publishing
- Docusaurus : Meta-maintained documentation framework built on React and MDX.
- Starlight : Documentation platform built directly on top of Astro.
- Slate : Markdown-based API documentation generator.
- Docsify : Runtime Markdown compiler that renders documentation on the fly without a build step.
- Docute : Lightweight alternative to Docsify for single-page documentation.
- GitBook Legacy CLI : Original Node.js command-line tool for publishing Markdown books.
Angular and Svelte
- Scully : Static site generator for Angular applications.
- SvelteKit
with
adapter-static: Pre-renders static HTML pages for Svelte applications. - Sapper : Legacy predecessor to SvelteKit with built-in static page exports.
Go
- Hugo : Extremely fast build engine written in Go, featuring built-in asset pipelines and zero runtime dependencies.
- Goldsmith : Pipeline-based static generator inspired by Metalsmith and compiled to native Go.
- Statically : Go-based static engine built around Markdown and Go standard templates.
- Ponzu : Headless CMS and server written in Go that supports static JSON and HTML generation.
- GoPublish : Minimalist publishing tool for transforming Markdown structures into HTML.
Rust
- Zola : Fast, all-in-one generator using Tera templates, Sass compilation, and CommonMark.
- mdBook : Official command-line tool used by the Rust team for creating programming and technical books.
- Cobalt : Minimalist, opinionated static blog engine.
- Seite : Modern static site generator featuring native Model Context Protocol (MCP) tool integration.
- Crowbook : Converts Markdown books into HTML, EPUB, and PDF formats.
Python
- Pelican : Veteran Python SSG supporting Markdown and reStructuredText with Jinja2 templating.
- MkDocs : Markdown-driven generator focused on project documentation, widely paired with the Material theme.
- Sphinx : Standard documentation tool across the scientific Python community, supporting reStructuredText and MyST Markdown.
- Lektor : Flexible, desktop GUI-friendly flat-file content management system and static builder.
- Nikola : Feature-rich engine supporting Markdown, reStructuredText, and Jupyter Notebooks.
- Frozen-Flask : Freezes dynamic Flask applications into completely static file trees.
- Cactus : Static site generator designed to deploy directly to Amazon S3 using Django templates.
- Hyde : Early Python alternative to Jekyll built on Jinja2.
- MyST Markdown / Curvenote : Scientific publishing engine converting technical Python code and notebooks into websites.
- Bengal : Python generator designed for documentation and product sites.
- Blurry : Schema-first, SEO-focused Markdown generator producing Schema.org metadata.
- Dewar : Flask-like, lightweight static publishing pipeline.
- Pagegen : Simple, syntax-flexible page generator.
Ruby
- Jekyll : Foundation of modern static publishing, deeply integrated as the default builder for GitHub Pages.
- Bridgetown : Modern Ruby static and progressive framework that modernizes Jekyll with Vite and esbuild.
- Middleman : Sinatra-inspired modular site generator specialized in marketing and campaign sites.
- Nanoc : Flexible, data-driven transformation pipeline supporting heterogeneous data sources.
- Ruhoh : Universal static blog engine designed as a decoupled version of Jekyll.
- Scruffy : Minimalist static builder focused on text-only and lightweight styling.
PHP
- PHPJigsaw : Built on Laravel’s Blade templating engine, Mix/Vite, and Tailwind CSS.
- Sculpin : Composer-based static generator powered by Symfony components and Twig templates.
- Spress : Extensible static site generator built on Symfony micro-components.
- Couscous : Generates developer documentation websites directly from Markdown files in GitHub repositories.
- Capro : Lightweight PHP 8 static generator using Laravel Blade templates.
- flatMark : Flat-file Markdown website generator requiring no database dependencies.
- Phrozn : Component-based static site generator written in PHP.
C#, .NET, and F#
- Statiq : Highly modular, extensible pipeline-driven document generator for .NET developers.
- Wyam : Predecessor to Statiq using Razor templates and Roslyn-powered configuration.
- AspNetStatic : Static generation engine that prerenders pages from existing ASP.NET Core pipelines.
- DocFX : Microsoft’s technical documentation generator for .NET API references and Markdown.
- Fornax : Static site generator written in F# using type-safe F# DSLs for page layouts.
C, C++, and Minimalist Tools
- Soupault : C and OCaml DOM-based generator that manipulates raw HTML elements through HTML parsers rather than text template tags.
- Tup : High-speed build system frequently adapted for low-latency static site pipelines.
- Treehouse : Minimalist C-based Markdown processor generating lightweight static trees.
- Smu : Small Markdown engine designed for fast shell-based static builds.
Haskell and Functional Languages
- Hakyll : Haskell static site compiler powered by Pandoc with an xmonad-like DSL.
- Franklin.jl : Julia static engine focused on mathematics and LaTeX-rich scientific writing.
- Pollen : Lisp and Racket-powered digital book publishing environment created by Matthew Butterick.
- Frog : Racket static blog generator using Markdown and Pygments.
- Obelisk : Elixir static site framework leveraging Elixir concurrency and EEx templates.
- Coil : Minimalist Elixir-based static site engine.
- LambdaPad : Erlang-based static website compiler.
- Cryogen : Clojure compiler built with Selmer and Markdown.
- Perun : Clojure build pipeline targeting the Boot and Clojure ecosystem.
JVM Languages
- JBake : Java generator supporting AsciiDoc, Markdown, FreeMarker, and Thymeleaf.
- Orchid : Java and Kotlin documentation and site generator supporting multi-module builds.
- Laika : Scala text-to-HTML, EPUB, and PDF compiler.
- Gaiden : Groovy documentation engine for turning Markdown into clean reference sites.
- Grain : Groovy static generator using metaprogramming capabilities.
Swift
- SwiftPublish : Swift-native generator allowing entire websites to be declared in pure Swift code.
- Saga : Code-first static generator in Swift with no configuration files or implicit build magic.
- Ignite : Declarative, pure-Swift static site builder adopting SwiftUI-like syntax.
Perl
- Blosxom : Historic flat-file blogging engine originally written as a single Perl script.
- Statocles : Comprehensive CMS and static publishing platform for Perl developers.
- Dotiac DTL : Django Template Language compiler ported to Perl for static page rendering.
R and Literate Data Science
- Quarto : Multilingual technical publishing system for R, Python, Julia, and Observable JavaScript, powered by Pandoc.
- Blogdown : R package integrating Hugo, Markdown, and R Markdown for data-driven websites.
- Bookdown : Authoring framework built on R Markdown for multi-chapter technical books.
Shell, Awk, Make, and Minimal Utilities
- BashBlog : Self-contained Bash script that generates a complete RSS-capable blog.
- Site44 : Web service that compiles Dropbox folders into static hosting.
- saait : HTML site generator written in C and Awk for simple, lightweight pages.
- m4-bakery : Static generator using GNU m4 macro processing and Make pipelines.
- gen_site : Ultra-minimalist Lua generator for developers working directly in HTML and Lua.
- Hwaro : High-speed static generator compiled to native code using Crystal.
Choosing from the Landscape
The right generator depends less on the total number of features than on the shape of the project:
- Choose Hugo or Zola when build speed, low operational overhead, and large content collections are the priority.
- Choose Astro , Eleventy , or Lume when a JavaScript or TypeScript ecosystem and flexible component authoring are important.
- Choose VitePress , Docusaurus , MkDocs , Sphinx , Starlight , or DocFX for documentation and developer portals.
- Choose Quarto , Bookdown , Hakyll , or Laika for scientific, academic, or multi-format publishing.
- Choose Next.js , Nuxt , Gatsby , or SvelteKit when a static site is closely connected to a frontend application ecosystem.
- Choose Jekyll , Pelican , or Middleman when an established language ecosystem or hosting platform is the deciding factor.
- Choose a minimalist tool such as saait , Smu , BashBlog , or gen_site when the goal is maximum control and the smallest possible build system.
The static site generator landscape is therefore not a single race toward one universal tool. It is a collection of specialized publishing systems. The most durable choice is the one whose build model, content format, runtime assumptions, and maintenance cost fit the project being built.