# Zorto > The AI-native static site generator (SSG) with executable code blocks. ## zorto.dev ## Zorto documentation Zorto is the AI-native static site generator (SSG) with executable code blocks. ## Concepts Core concepts behind how Zorto works. Each page explains a feature in depth — what it does, how it works, and when to use it. - [AI-native](https://zorto.dev/docs/concepts/ai-native.md): Zorto is a static site generator built for workflows where humans and AI agents collaborate on websites. - [Blog, events, and more](https://zorto.dev/docs/concepts/blog.md): Zorto does not have a special "blog" feature. Instead, its section system naturally handles any date-ordered content: blog posts, changelogs, event listings, release notes, newsletters. If it has a date and belongs in a list, it is a section. - [Callouts](https://zorto.dev/docs/concepts/callouts.md): Callouts are styled alert boxes rendered from standard markdown blockquote syntax. Zorto uses the GitHub-style [!TYPE] format — no shortcodes or HTML needed. - [Configuration](https://zorto.dev/docs/concepts/configuration.md): Zorto is configured via config.toml in your project root. - [Content model](https://zorto.dev/docs/concepts/content-model.md): Zorto organizes content into sections and pages, derives URLs from the file structure, supports internal linking with build-time validation, and lets you co-locate assets alongside your markdown. - [Executable code blocks](https://zorto.dev/docs/concepts/executable-code.md): Zorto can execute Python and Bash code blocks at build time and render their output inline. - [Fast](https://zorto.dev/docs/concepts/fast.md): Zorto's build pipeline typically completes in under 100ms. The build runs on every save during development and on every push in CI, so build speed directly affects iteration speed. - [Free & open source](https://zorto.dev/docs/concepts/open-source.md): Zorto is MIT-licensed. Use it for anything — personal sites, commercial projects, internal tools — with no restrictions beyond including the license and copyright notice. - [Glossary](https://zorto.dev/docs/concepts/glossary.md): Definitions for web and SSG terms used throughout the Zorto docs. Skip to the section you need: - [Live reload](https://zorto.dev/docs/concepts/live-reload.md): Zorto's dev server watches your files, rebuilds automatically, and refreshes the browser — no manual reload needed. - [Presentations](https://zorto.dev/docs/concepts/presentations.md): Zorto generates slide decks from markdown using reveal.js. Each slide is its own markdown file with frontmatter controlling layout, backgrounds, and transitions. This follows Zorto's core principle: one markdown file per page. - [Search](https://zorto.dev/docs/concepts/search.md): Zorto includes built-in client-side search. At build time, it generates a SQLite database of all your pages. In the browser, sql.js (SQLite compiled to WASM) loads the database and runs queries entirely client-side — no server required. - [Shortcodes](https://zorto.dev/docs/concepts/shortcodes.md): Shortcodes let you embed rich, structured content in markdown without writing raw HTML. They bridge the gap between markdown's simplicity and the flexibility of full templates. - [Templates](https://zorto.dev/docs/concepts/templates.md): Zorto uses the Tera template engine, which has Jinja2-like syntax. - [Themes](https://zorto.dev/docs/concepts/themes.md): Zorto's theme system provides a complete visual starting point — templates, styles, and light/dark mode — that you can use as-is or progressively override. ## Getting started This tutorial walks you through building a complete site with Zorto, from installation to production build. - [Installation](https://zorto.dev/docs/getting-started/installation.md): Zorto runs on macOS and Linux. Windows support is available via WSL. - [Next steps](https://zorto.dev/docs/getting-started/first-site.md): Now that you have a working site, here are some directions to explore. - [Your first site](https://zorto.dev/docs/getting-started/quick-start.md): By the end of this tutorial you will have a working site with: ## How-to Step-by-step guides for common Zorto tasks. - [Add a 404 page](https://zorto.dev/docs/how-to/add-404-page.md): The built-in themes ship with a 404.html template that renders automatically. If you want a custom one, create your own templates/404.html in your project root. - [Add a blog](https://zorto.dev/docs/how-to/add-blog.md): Set up a blog with posts, tags, pagination, and an Atom feed. - [Add a favicon](https://zorto.dev/docs/how-to/add-favicon.md): Place your favicon file in the static/ directory at your project root. Zorto copies everything in static/ to public/ at build time, so static/favicon.svg becomes /favicon.svg. - [Add a sitemap](https://zorto.dev/docs/how-to/add-sitemap.md): Zorto generates sitemap.xml automatically. It is enabled by default — no configuration needed. - [Add search](https://zorto.dev/docs/how-to/add-search.md): Zorto has built-in client-side search powered by SQLite and WASM. One config line enables it. - [Advanced templating](https://zorto.dev/docs/how-to/advanced-templating.md): Go beyond basic templates with macros, block inheritance, loops, pagination, and dynamic data from config.extra. - [Build a blog](https://zorto.dev/docs/how-to/build-blog.md): Create a blog from scratch with posts, tags, pagination, custom themes, and deployment. - [Build a docs site](https://zorto.dev/docs/how-to/build-docs-site.md): Create a documentation site with organized sections, sidebar navigation, and optional external content sources using content_dirs. - [Create a presentation](https://zorto.dev/docs/how-to/create-presentation.md): This guide walks through creating a slide deck with Zorto and reveal.js. - [Create charts with altair](https://zorto.dev/docs/how-to/altair.md): Use Altair in executable code blocks to create declarative statistical visualizations that render as interactive HTML. - [Create charts with matplotlib](https://zorto.dev/docs/how-to/matplotlib.md): Use matplotlib in executable code blocks to generate static charts that render as inline PNGs. - [Create charts with seaborn](https://zorto.dev/docs/how-to/seaborn.md): Use seaborn in executable code blocks to create statistical visualizations. Seaborn builds on matplotlib, so charts render as inline PNGs. - [Create interactive charts with plotly](https://zorto.dev/docs/how-to/plotly.md): Use plotly in executable code blocks to generate interactive charts with hover, zoom, and pan. - [Customize navigation and footer](https://zorto.dev/docs/how-to/customize-nav-footer.md): The built-in themes render navigation and footer from config.toml values. No template overrides needed for common cases. - [Customize styles with SCSS and CSS](https://zorto.dev/docs/how-to/custom-css.md): Override colors, fonts, spacing, and layout without forking a theme. - [Customize your theme](https://zorto.dev/docs/how-to/customize-theme.md): Override templates, styles, and shortcodes without forking the theme. - [Deploy your site](https://zorto.dev/docs/how-to/deploy.md): Zorto builds static files — HTML, CSS, JS — that can be hosted on any static hosting provider. No server-side runtime required. - [Manage assets](https://zorto.dev/docs/how-to/assets.md): Serve images, fonts, and other static files alongside your Zorto site. - [Optimize builds](https://zorto.dev/docs/how-to/build-optimization.md): Speed up builds for large sites and control what Zorto generates. - [Optimize for SEO and discoverability](https://zorto.dev/docs/how-to/seo.md): Configure your Zorto site for search engine visibility and AI agent discovery. - [Organize content with sections](https://zorto.dev/docs/how-to/organize-content.md): Structure your site for different content types, audiences, or topics using Zorto's section system. - [Set up a custom domain](https://zorto.dev/docs/how-to/custom-domain.md): Connect your own domain to a Zorto site hosted on any static hosting provider. - [Set up multiple authors](https://zorto.dev/docs/how-to/multiple-authors.md): Use taxonomies and page frontmatter to attribute content to different authors. - [Troubleshooting](https://zorto.dev/docs/how-to/troubleshooting.md): Common issues and how to fix them. - [Use executable code blocks](https://zorto.dev/docs/how-to/executable-code-blocks.md): Run Python and Bash at build time to generate dynamic content in your static site. ## Reference Complete reference documentation for Zorto. - [CLI reference](https://zorto.dev/docs/reference/cli.md): The zorto command-line interface. See installation for setup, live reload for preview server details, and troubleshooting for common issues. - [Callouts reference](https://zorto.dev/docs/reference/callouts.md): Zorto supports GitHub-style callout alerts. Use blockquote syntax with a type marker. See callouts concept for when to use callouts vs shortcodes. - [Configuration reference](https://zorto.dev/docs/reference/config.md): Complete reference for config.toml. See configuration concept for the mental model and examples. The tables below are auto-generated from the Zorto source code. - [Content directories](https://zorto.dev/docs/reference/content-dirs.md): Pull content from outside the content/ directory using [[content_dirs]] in config.toml. This is ideal for documentation that lives alongside source code, or content shared between multiple sites. - [Frontmatter reference](https://zorto.dev/docs/reference/frontmatter.md): Complete specification for TOML frontmatter in Zorto content files. Frontmatter is enclosed in +++ delimiters at the top of every .md file. - [Python API](https://zorto.dev/docs/reference/python-api.md): Zorto's Python API lets you load, inspect, and build sites programmatically. Install the package: - [Rust API](https://zorto.dev/docs/reference/rust-api.md): Zorto's Rust API is documented on docs.rs. - [Shortcodes reference](https://zorto.dev/docs/reference/shortcodes.md): Complete reference for all built-in shortcodes. See shortcodes concept for an overview and how to customize your theme for creating custom shortcodes. - [Taxonomies in depth](https://zorto.dev/docs/reference/taxonomies.md): Taxonomies let you classify content with terms like tags, categories, or any custom grouping. Zorto auto-generates listing pages for each taxonomy and its terms. - [Template functions and filters](https://zorto.dev/docs/reference/template-functions.md): Zorto registers custom template functions, filters, and tests on top of the Tera template engine. This page is the complete reference. ## Blog - [Executable visualizations](https://zorto.dev/posts/executable-visualizations.md): Zorto now renders Python visualizations inline — matplotlib, plotly, seaborn, altair. Just write the code. - [Zorto roadmap to v1](https://zorto.dev/posts/roadmap-v1.md): Zorto's v1 roadmap. - [Introducing Zorto!](https://zorto.dev/posts/welcome-to-zorto.md): The AI-native static site generator (SSG) built for AI and agents. MIT-licensed, free and open source forever. ## Presentations ## Introduction to Zorto An overview of Zorto, the AI-native static site generator (SSG) with executable code blocks. - [Title](https://zorto.dev/presentations/intro-to-zorto/title.md) - [What is Zorto?](https://zorto.dev/presentations/intro-to-zorto/what-is-zorto.md) - [Why another SSG?](https://zorto.dev/presentations/intro-to-zorto/why-another-ssg.md) - [Key features](https://zorto.dev/presentations/intro-to-zorto/key-features.md) - [Images, anywhere](https://zorto.dev/presentations/intro-to-zorto/images.md) - [Executable code blocks](https://zorto.dev/presentations/intro-to-zorto/executable-code.md) - [Live visualizations](https://zorto.dev/presentations/intro-to-zorto/visualizations.md) - [Themes](https://zorto.dev/presentations/intro-to-zorto/themes.md) - [Progressive reveal](https://zorto.dev/presentations/intro-to-zorto/fragments.md) - [AI-native design](https://zorto.dev/presentations/intro-to-zorto/ai-native.md) - [Backgrounds](https://zorto.dev/presentations/intro-to-zorto/backgrounds.md) - [One file per slide](https://zorto.dev/presentations/intro-to-zorto/one-file-per-slide.md) - [Shortcodes](https://zorto.dev/presentations/intro-to-zorto/shortcodes.md) - [Get started](https://zorto.dev/presentations/intro-to-zorto/get-started.md) - [Thank you](https://zorto.dev/presentations/intro-to-zorto/thank-you.md)