Sizing up Bengal? Start with Philosophy and Benchmarks. Comparing SSGs? Read how Bengal differs on free-threading and Python-native tooling. Already convinced? Jump to Get Started.
Bengal is a static site generator where the entire stack is Python you can
read, debug, and extend. Every library in the pipeline —
Patitas (markdown),
Rosettes (syntax highlighting),
Kida (templates),
Pounce (dev server) — is purpose-built for
Python 3.14+ free-threading. No JavaScript toolchains. No
compiled C extensions in the critical path.pip install bengaland go.
Why Bengal?
| Benefit | What It Means |
|---|---|
| Scales with cores | True thread parallelism on Python 3.14t — no GIL contention. See Benchmarks |
| AI-native output | llms.txt, agent manifests, per-page JSON, Content Signals — machines can discover and navigate your docs |
| Sub-second rebuilds | Provenance-based incremental builds with content-addressed hashing |
| Python-native workflows | Jupyter rendering, autodoc for Python/CLI/OpenAPI,pip installand go |
| Batteries included | Sitemap, RSS, social cards, search indexes, broken link detection, validation |
| Extensible | Pluggable engines, theme inheritance, swizzling, 6 wired plugin extension points (content sources, health validators, and shortcodes are registered and planned) |
Use Cases
- Documentation Sites — Versioned docs, API reference, search, and internal linking
- Blogs & Journals — Tags, categories, feeds, related content, and social sharing
- Knowledge Bases — Markdown-first publishing with validation and JSON search indexes
- Product & Marketing Sites — Landing pages, content collections, and social cards
Philosophy
Bengal prioritizes correctness over backwards compatibility. Each release reflects our best design. When better approaches emerge, behavior may change.
See Project Philosophy for details.