FREEDOM251

Freedom251 › Static site generators

Hakyll

Free plan LinuxMacWindows

Visit Hakyll Alternatives

Hakyll's own site

What Hakyll is

Hakyll is a free Haskell library for generating static sites, aimed mainly at small-to-medium sites and personal blogs. You define a site in a Haskell embedded domain-specific language, then use declarative rules to select resources and their compilers. Dependency tracking sets the build order, and incremental builds can rebuild changed content. Hakyll compiles site content into HTML files ready to upload. Pandoc integration supports Markdown and TeX, while the compiler tutorial also covers Markdown and reStructuredText input. Compiler examples include copying files, compressing CSS, and rendering content as HTML with Pandoc. Routes can retain filenames, change extensions, or apply custom logic. Templates handle metadata, context fields, conditionals, partials, and loops over lists. Tutorial instructions cover creating RSS, Atom, and JSON feeds. When the preview server is included, a watch command builds and serves the site locally at localhost:8000. Hakyll is available under a BSD license; the project notes that using Pandoc means the user's code needs a GPL-compatible license. Installation options include Cabal and Stack, with packages linked for Debian, Fedora, and Arch. The project points users to tutorials, a Google discussion group, and the #hakyll IRC channel on Libera.Chat.

Who it suits

Hakyll suits Haskell users building small-to-medium static sites or personal blogs who want to define build rules and routing in code. It may also fit people who want local previews, dependency tracking, and feed generation as part of their site workflow.

What it does well

  • Free, with no trial required.
  • Incremental builds use dependency tracking to determine build order.
  • Routes can preserve filenames, change extensions, or use custom logic.
  • Templates support metadata, conditionals, partials, and list loops.
  • Preview sites locally when the preview server is included.
  • Installation options include Cabal, Stack, and linked Linux packages.

What to know first

  • Primarily aimed at small-to-medium sites and personal blogs.
  • Editing site.hs requires recompiling the configuration before rebuilding.
  • Using Pandoc means the user's code needs a GPL-compatible license.

Limits

Hakyll's stated focus is small-to-medium sites and personal blogs. Incremental builds do not detect edits to site.hs, so the configuration must be recompiled before rebuilding.

Getting started

  1. Visit the Hakyll website.
  2. Install Hakyll through Cabal or Stack, or use a linked Debian, Fedora, or Arch package.
  3. Configure the site with Haskell's embedded domain-specific language and define its build rules.
  4. Use the watch command to build and preview locally when the preview server is included.
  5. Compile the site into HTML files ready to upload.

Verdict

Choose Hakyll if you use Haskell and want to build a static site through configurable rules, compilers, and templates. Look elsewhere if your needs exceed its stated focus on small-to-medium sites and personal blogs, or if Pandoc's GPL-compatible code requirement does not suit your project.

Questions

How much does Hakyll cost?

Hakyll is free and has a free plan. There is no free trial.

Which platforms does Hakyll support?

It supports Linux, macOS, and Windows.

What content formats can it handle?

Pandoc integration supports Markdown and TeX. The compiler tutorial also lists Markdown and reStructuredText input.

Is Hakyll open source?

Hakyll is available under a BSD license. The project says using Pandoc means the user's code needs a GPL-compatible license.

How can I install Hakyll?

The maker lists Cabal and Stack installation, and links packages for Debian, Fedora, and Arch.

Where can I get help with Hakyll?

The project points users to tutorials, a Google discussion group, and the #hakyll IRC channel on Libera.Chat.

Facts from Hakyll's own pages

Audience
The maker describes Hakyll as mostly aimed at small-to-medium sites and personal blogs. · jaspervdj.be, 5 Oct 2026
Build and deploy
Hakyll compiles site content to HTML for upload. · jaspervdj.be, 5 Oct 2026
Build rules
Declarative rules use dependency tracking to determine the order in which items are built. · jaspervdj.be, 4 Oct 2026
Compilers
Built-in compiler examples include copying files, simple CSS compression, and rendering Markdown or reStructuredText to HTML with Pandoc. · jaspervdj.be, 5 Oct 2026
Configuration
Sites are configured with a customizable Haskell DSL. · jaspervdj.be, 5 Oct 2026
Content formats
Pandoc integration provides support for Markdown and TeX, including syntax highlighting. · jaspervdj.be, 5 Oct 2026
Content sources
markdown · jaspervdj.be, 20 Sept 2026
Feeds
The tutorial series includes instructions for producing RSS, Atom, and JSON feeds. · jaspervdj.be, 5 Oct 2026
Free plan
Yes · jaspervdj.be, 20 Sept 2026
Incremental builds
The FAQ says a normal build is incremental, while changes to site.hs require recompiling the configuration and rebuilding. · jaspervdj.be, 4 Oct 2026
Install methods
The maker lists installation through Cabal or Stack and links Linux distribution packages for Debian, Fedora, and Arch. · jaspervdj.be, 5 Oct 2026
Integrations
The official site describes Pandoc integration and lists utility projects for Agda, Sass, Elm, hyphenation, and converting from other blog engines. · jaspervdj.be, 4 Oct 2026
License
Hakyll is available under a BSD license; the maker notes that using Pandoc means site code must use a GPL-compatible license. · jaspervdj.be, 5 Oct 2026
Limit
The project says it is mostly aimed at small-to-medium sites and personal blogs. · jaspervdj.be, 4 Oct 2026
Maintainer
The about page says Hakyll was originally written by Jasper Van der Jeugt, who still maintains the package. · jaspervdj.be, 5 Oct 2026
Notable limitation
The FAQ says incremental builds do not detect edits to site.hs, so the configuration must be recompiled before running rebuild. · jaspervdj.be, 5 Oct 2026
Output
Hakyll compiles site content into HTML files ready to deploy. · jaspervdj.be, 4 Oct 2026
Preview server
The installation guide describes a watch command that builds and previews the site locally at localhost:8000 when the preview server is included. · jaspervdj.be, 5 Oct 2026
Product type
Hakyll is a Haskell library for generating static sites, mainly aimed at small-to-medium sites and personal blogs. · jaspervdj.be, 4 Oct 2026
Purpose
Hakyll is a Haskell library for generating static sites, aimed mostly at small-to-medium sites and personal blogs. · jaspervdj.be, 5 Oct 2026
Routing
Routes can preserve filenames, change extensions, or apply custom routing logic. · jaspervdj.be, 4 Oct 2026
Rules and dependency tracking
Declarative rules select resources and their compilers, while dependency tracking determines build order. · jaspervdj.be, 5 Oct 2026
Security
The project describes static sites as fast, secure, easy to deploy, and manageable using version control. · jaspervdj.be, 4 Oct 2026
Support
The maker points users to a Google discussion group and the #hakyll channel on Libera.Chat for questions. · jaspervdj.be, 5 Oct 2026

Where Hakyll stands on Freedom251

Look at these too