Zorto
The AI-native static site generator (SSG) with executable code blocks.
Features
Slide decks
Build reveal.js presentations from markdown — one file per slide, weight-ordered, with layouts, backgrounds, transitions, and speaker notes. Keyboard navigation and fullscreen built in.
Executable code blocks
Run Python and Bash at build time. Matplotlib, Plotly, Altair, and Seaborn charts rendered inline. Output baked into static HTML.
Fast
Written in Rust. Sites build in milliseconds. Live reload with instant browser refresh during development.
16 themes
Built-in themes with light and dark mode. Switch instantly. Override any template or style locally.
AI-native
Your site is markdown + config. AI agents can read, edit, and build it. AGENTS.md contracts, zorto check for validation, llms.txt for consumption.
Shortcodes & callouts
Tabs, figures, diagrams, callout alerts, code includes, and more. Rich content without HTML in your markdown.
Blog & docs
Sections with date sorting, pagination, taxonomies, and search. Blog, documentation, and landing page templates included.
Python & Rust
Install via uv, pip, or cargo. Use as a CLI, Python library, or Rust crate. MIT-licensed forever.
Built-in search
SQLite-powered full-text search. Generated at build time, runs client-side. No external services.
Web CMS
Optional browser-based content management. Onboarding wizard, page editor, config manager. Run with --webapp.
Zorto #
The AI-native static site generator (SSG) with executable code blocks, inspired by Zola and Quarto.
Install #
curl -LsSf https://dkdc.sh/zorto/install.sh | sh
Verify:
zorto --version
zorto 0.21.0
More install options
The curl | sh installer above wraps uv tool install zorto. On Linux and macOS it pulls a pre-built wheel from PyPI that bundles the Rust engine (no compile step). Windows is not covered by the installer — use cargo from source or run under WSL.
uv (PyPI wheel, no compile):
uv tool install zorto
uvx (run once without installing):
uvx zorto
cargo (build from source, requires Rust 1.85+):
cargo install zorto
Usage #
zorto --help
The AI-native static site generator (SSG) with executable code blocks
Usage: zorto [OPTIONS] [COMMAND]
Commands:
build Build the site
preview Start preview server with live reload
clean Remove output directory and/or cache
init Initialize a new site
check Check site for errors without building
skill Install zorto skill files for AI agents
help Print this message or the help of the given subcommand(s)
Options:
-r, --root <ROOT> Site root directory [default: .]
-N, --no-exec Disable execution of code blocks ({python}, {bash}, {sh})
--sandbox <SANDBOX> Sandbox boundary for file operations (include shortcode, etc.). Paths cannot escape this directory. Defaults to --root
-h, --help Print help
-V, --version Print version
Slide decks #
Zorto ships a reveal.js-powered presentation mode: one markdown file per slide, with frontmatter for layout, background, and transitions. Arrow keys, speaker view, fullscreen, and overview mode are built in, so a deck is just a directory of .md files that a human or agent can draft, reorder, or hand off without touching HTML.
- Live intro deck — what a Zorto-built deck looks like.
- Create a presentation — step-by-step guide.
- Presentations concept — the content model behind decks.
Executable code blocks #
Use {bash} or {python} in code blocks to execute them.
echo "hello"
hello
echo "Built on $(uname -s) $(uname -m) at $(date -u '+%Y-%m-%d %H:%M UTC')"
Built on Linux x86_64 at 2026-04-13 19:54 UTC
for i in range(5): print(i)
0
1
2
3
4
Tip
If you’re reading elsewhere, see https://zorto.dev for the rendered results of the code blocks above.