Skip to content

Commit 6a5e4b0

Browse files
Adopt eclipse-ssg canonical format for README (#12)
Apply hyperpolymath standard documentation structure: - Tagline and badges - "Who Is This For?" audience targeting - "Why poly-ssg?" value propositions emphasizing paradigm purity - Engines table with paradigmatic strengths - Architecture diagram showing MCP unification - Integration section linking to poly-mcp ecosystem Co-authored-by: Claude <[email protected]>
1 parent 9b9900b commit 6a5e4b0

File tree

1 file changed

+126
-7
lines changed

1 file changed

+126
-7
lines changed

README.adoc

Lines changed: 126 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,137 @@
1+
// SPDX-License-Identifier: AGPL-3.0-or-later
2+
// SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3+
14
= Poly SSG
25
:toc: auto
36

4-
Polyglot static site generator framework. One contract, many languages, unique paradigmatic strengths.
7+
image:https://img.shields.io/badge/RSR-compliant-blue[RSR Compliant]
8+
image:https://img.shields.io/badge/status-active-green[Status: Active]
9+
image:https://img.shields.io/badge/license-AGPL--3.0--or--later-purple[License: AGPL-3.0-or-later]
10+
11+
_One contract. Many paradigms. Every paradigm teaches._
12+
13+
A polyglot static site generator framework where each engine embodies its language's philosophy—from dependently-typed correctness to stack-based minimalism—unified through a common MCP interface.
14+
15+
== Who Is This For?
16+
17+
* **Paradigm explorers** — See the same problem solved through functional, logic, parallel, and stack-based lenses
18+
* **Language enthusiasts** — Each engine is idiomatic, not a transliteration
19+
* **MCP practitioners** — Switch between engines without changing your tooling
20+
* **Educators** — Demonstrate that there's no "one true way" to generate sites
21+
22+
== Why poly-ssg?
23+
24+
=== Paradigm Purity
25+
26+
Each engine embraces its language's strengths. Haskell stays pure. Prolog stays declarative. Forth stays stack-oriented. No lowest-common-denominator compromises.
27+
28+
=== One Contract, Many Implementations
29+
30+
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.
31+
32+
=== Educational by Design
33+
34+
Static site generation is complex enough to be interesting, simple enough to understand. Comparing implementations reveals:
35+
36+
* Trade-offs between approaches
37+
* Language idioms through real examples
38+
* Why certain paradigms excel at certain tasks
39+
40+
=== Production-Ready Satellites
41+
42+
Each engine is a standalone project. Use Casket (Haskell) in production while exploring Ddraig (Idris 2) for provable correctness. They share a contract, not a codebase.
43+
44+
== Engines
45+
46+
[cols="1,1,2"]
47+
|===
48+
|Engine |Language |Paradigmatic Strength
549

6-
== Overview
50+
|**Casket**
51+
|Haskell
52+
|Pure functional transformations, lazy evaluation
753

8-
Poly SSG enables building static sites using multiple programming languages, each contributing its unique strengths to the build process.
54+
|**Ddraig**
55+
|Idris 2
56+
|Dependently-typed, compile-time correctness proofs
957

10-
== Features
58+
|**Estate**
59+
|Forth
60+
|Stack-based, minimal dependencies, concatenative composition
1161

12-
* Multi-language support
13-
* Unified contract across implementations
14-
* MCP integration
62+
|**Parallax**
63+
|Chapel
64+
|Data-parallel, scales to thousands of pages without threading pain
65+
66+
|**Prodigy**
67+
|Prolog
68+
|Logic-based, declarative site definitions as rules
69+
70+
|**Rescribe**
71+
|ReScript
72+
|Type-safe compilation to JavaScript, fast iteration
73+
74+
|**Zigzag**
75+
|Zig
76+
|Zero-overhead abstractions, explicit memory control
77+
|===
78+
79+
Additional experimental engines exist for COW, Logo, WebAssembly Text, and Conway's Game of Life—proving computational universality extends to static site generation.
80+
81+
== Quick Start
82+
83+
Each engine is a satellite repository. To use one:
84+
85+
[source,bash]
86+
----
87+
# Clone the engine you want
88+
git clone https://github.com/hyperpolymath/casket-ssg
89+
90+
# Or use via the unified MCP interface
91+
# (poly-ssg-mcp exposes all engines through a single server)
92+
----
93+
94+
== Architecture
95+
96+
----
97+
┌─────────────────────┐
98+
│ poly-ssg-mcp │
99+
│ (MCP Server) │
100+
└──────────┬──────────┘
101+
102+
┌────────────────────────┼────────────────────────┐
103+
│ │ │
104+
▼ ▼ ▼
105+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
106+
│ Casket │ │ Ddraig │ │ Estate │
107+
│ (Haskell) │ │ (Idris 2) │ │ (Forth) │
108+
└─────────────┘ └─────────────┘ └─────────────┘
109+
│ │ │
110+
└────────────────────────┼────────────────────────┘
111+
112+
113+
┌─────────────────────┐
114+
│ ReScript Adapter │
115+
│ (Unified Types) │
116+
└─────────────────────┘
117+
----
118+
119+
== Integration
120+
121+
poly-ssg is part of the poly-mcp ecosystem:
122+
123+
* **poly-ssg-mcp** — Unified MCP server exposing all engines
124+
* **poly-container-mcp** — Multi-runtime container management
125+
* **poly-iac-mcp** — Infrastructure as Code tools
126+
* **poly-git-mcp** — Git forge management
127+
* **poly-k8s-mcp** — Kubernetes orchestration
128+
129+
== Adding an Engine
130+
131+
See link:docs/ADDING-ENGINE.md[ADDING-ENGINE.md] for the contract specification and implementation guide.
15132

16133
== License
17134

18135
AGPL-3.0-or-later
136+
137+
This ensures all paradigmatic implementations remain open. Your site content is yours; the tools stay free.

0 commit comments

Comments
 (0)