A fully incremental static site generator.
Dev mode = Production mode. Unlike other static site generators that take shortcuts in development (skipping minification, using original asset paths, etc.), dodeca serves exactly what you'll get in production: cache-busted URLs, minified HTML, subsetted fonts, responsive images—the works. Even font subsetting runs in dev!
This is possible because dodeca uses picante for incremental computation. Every transformation is a cached query. Change a file and only the affected queries re-run. First page load builds what's needed; subsequent requests are instant.
Custom template engine. Dodeca includes its own Jinja-like template engine. This gives you the power of a real language (conditionals, loops, variable interpolation) without the complexity of learning a new syntax. The engine includes rich diagnostics with line/column information for template errors.
Processor architecture. Dodeca's build pipeline is made of focused processor crates
for image optimization, CSS processing, syntax highlighting, search indexing, and more.
They are linked into the ddc binary and called directly through typed facades.
Install dodeca:
The recommended way to install dodeca is the install script, which fetches prebuilt binaries from object storage. Releases ship a single ddc binary with the built-in processors linked in.
curl --proto '=https' --tlsv1.2 -LsSf https://bearcove-dist.s3.fr-par.scw.cloud/dodeca/install.sh | sh
Supported by the installer:
- macOS (Apple Silicon / arm64)
- Linux (x86_64)
After that, you can create a new site:
ddc init my-site
cd my-site
ddc serve
This starts a development server at http://localhost:8080 with live reload.
The dodeca workspace includes:
ddc CLI)Build everything:
cargo xtask build
Run tests:
cargo test --workspace
Build the documentation:
cargo doc --workspace --no-deps --open
Contributions are welcome! Please open issues and pull requests on GitHub.
Thanks to all individual sponsors:
<img src="https://github.com/bearcove/dodeca/raw/v0.17.0/static/sponsors-v3/patreon-light.svg" height="40" alt="Patreon">
...along with corporate sponsors:
...without whom this work could not exist.
Licensed under either of:
at your option.
$ claude mcp add dodeca \
-- python -m otcore.mcp_server <graph>