-
Paradigm explorers — See the same problem solved through functional, logic, parallel, and stack-based lenses
-
Language enthusiasts — Each engine is idiomatic, not a transliteration
-
MCP practitioners — Switch between engines without changing your tooling
-
Educators — Demonstrate that there’s no "one true way" to generate sites
Each engine embraces its language’s strengths. Haskell stays pure. Prolog stays declarative. Forth stays stack-oriented. No lowest-common-denominator compromises.
The MCP contract defines what an SSG does. Each engine decides how. Your AI assistant, build scripts, and workflows remain unchanged when you switch paradigms.
Static site generation is complex enough to be interesting, simple enough to understand. Comparing implementations reveals:
-
Trade-offs between approaches
-
Language idioms through real examples
-
Why certain paradigms excel at certain tasks
| Engine | Language | Paradigmatic Strength |
|---|---|---|
Casket |
Haskell |
Pure functional transformations, lazy evaluation |
Ddraig |
Idris 2 |
Dependently-typed, compile-time correctness proofs |
Estate |
Forth |
Stack-based, minimal dependencies, concatenative composition |
Parallax |
Chapel |
Data-parallel, scales to thousands of pages without threading pain |
Prodigy |
Prolog |
Logic-based, declarative site definitions as rules |
Rescribe |
ReScript |
Type-safe compilation to JavaScript, fast iteration |
Zigzag |
Zig |
Zero-overhead abstractions, explicit memory control |
Additional experimental engines exist for COW, Logo, WebAssembly Text, and Conway’s Game of Life—proving computational universality extends to static site generation.
Each engine is a satellite repository. To use one:
# Clone the engine you want
git clone https://github.com/hyperpolymath/casket-ssg
# Or use via the unified MCP interface
# (poly-ssg-mcp exposes all engines through a single server) ┌─────────────────────┐
│ poly-ssg-mcp │
│ (MCP Server) │
└──────────┬──────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Casket │ │ Ddraig │ │ Estate │
│ (Haskell) │ │ (Idris 2) │ │ (Forth) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
└────────────────────────┼────────────────────────┘
│
▼
┌─────────────────────┐
│ ReScript Adapter │
│ (Unified Types) │
└─────────────────────┘
poly-ssg is part of the poly-mcp ecosystem:
-
poly-ssg-mcp — Unified MCP server exposing all engines
-
poly-container-mcp — Multi-runtime container management
-
poly-iac-mcp — Infrastructure as Code tools
-
poly-git-mcp — Git forge management
-
poly-k8s-mcp — Kubernetes orchestration
See ADDING-ENGINE.md for the contract specification and implementation guide.