An open API service indexing awesome lists of open source software.

https://github.com/hyperpolymath/casket-ssg

Pure functional static site generator in Haskell. Strong type guarantees ensure your site builds correctly.
https://github.com/hyperpolymath/casket-ssg

content-tools functional-programming haskell hyperpolymath poly-ssg publishing ssg static-site static-site-generator templates themes websites websites-and-cms

Last synced: 2 months ago
JSON representation

Pure functional static site generator in Haskell. Strong type guarantees ensure your site builds correctly.

Awesome Lists containing this project

README

          

= casket-ssg
image:https://img.shields.io/badge/license-PMPL--1.0-blue.svg[License,link="https://github.com/hyperpolymath/palimpsest-license"]

image:https://img.shields.io/badge/Philosophy-Palimpsest-purple.svg[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-licence"]

:toc: auto
:toclevels: 2

image:https://img.shields.io/badge/RSR-compliant-gold[RSR Compliant,link=https://github.com/hyperpolymath/rhodium-standard-repositories]
image:https://img.shields.io/badge/poly--ssg-satellite-blue[poly-ssg,link=https://github.com/hyperpolymath/poly-ssg]

**Pure functional static site generator in Haskell.**

== Who Is This For?

* **Haskell developers** who want to build sites with tools they know and love
* **Functional programming enthusiasts** who appreciate compositional design
* **Teams requiring reliability** where type safety prevents runtime surprises
* **Anyone frustrated** by dynamic language site builders that fail at deploy time

== Why casket-ssg?

=== Type Safety That Matters

Your site structure is checked at compile time. Missing templates, broken links, malformed frontmatter - all caught before deployment, not discovered by users.

=== Composable Pipelines

Content transformations compose like functions should. Chain markdown processing, templating, and asset handling with confidence that types align.

=== Lazy Large-Site Builds

Haskell's lazy evaluation means casket-ssg only processes what's needed. Incremental builds are natural, not bolted on.

=== Pandoc Integration

Best-in-class document conversion with full Pandoc support. Markdown, reStructuredText, Org-mode - your content, your format.

== Quick Start

[source,bash]
----
# Install
cabal update
cabal install casket-ssg

# Create a site
casket-ssg init my-site
cd my-site

# Build
casket-ssg build

# Preview locally
casket-ssg serve
----

== Features

* **Compile-time template validation** - broken templates don't build
* **Strong frontmatter types** - YAML parsing with schema enforcement
* **Asset pipeline** - CSS/JS processing with hash-based cache busting
* **Incremental builds** - only rebuild what changed
* **Live reload** - instant preview during development
* **RSS/Atom feeds** - generated automatically from content
* **Sitemap generation** - SEO-ready output

== Requirements

* GHC 9.0 or later
* Cabal 3.0 or Stack 2.0

== Part of poly-ssg

casket-ssg is part of the https://github.com/hyperpolymath/poly-ssg[poly-ssg] family of language-native static site generators, unified through https://github.com/hyperpolymath/poly-ssg-mcp[MCP integration].

== License

PMPL-1.0-or-later