Steno

Build fast.
Ship safely.

Steno turns Markdown into a fast static site, and never leaves a broken build live. Start with a configured project for full control, or one file for a lightweight start.

MIT licensed Powered by Deno Snug Nook Approved
my-steno-site ready
content/index.md content/.steno/config.yml
ScanParseTauStagePublish
---
title: Hello, Steno
layout: layout
---
# A faster way to publish
Write Markdown. Ship a website.
$ deno task build

Ready to build 1 page

dist/ index.html atomic output

Structure when you want it. Simplicity when you do not.

Both modes use the same build pipeline, default theme, transactional output, and production guarantees.

RecommendedConfigured project

Start with a complete foundation.

Use themes, plugins, collections, redirects, data files, and project-wide settings from day one.

  • Interactive setup
  • Official themes
  • Optional Shiki and Tailwind plugins
OptionalZero-config mode

Turn one Markdown file into a site.

Perfect for a single page, a small experiment, or any project that does not need explicit settings yet.

# Hello from Steno

No config file required.
  • Automatic project discovery
  • Default theme included
  • Add configuration whenever needed

Four thousand pages. Less than half a second.

Steno tracks cold, warm, incremental, pipeline, and Tau performance in CI. Results are recorded with the test machine and Deno version, so the numbers stay honest.

Read the benchmark methodology
Cold build 405ms

4,000 Markdown pages

Cold build102ms1,000 pages
Warm build32ms1,000 unchanged
Tau render902nssimple template

Apple M5, Deno 2.9.4. Results vary by machine.

Fast is useful. Predictable is essential.

Steno protects the site you already shipped while containing extension failures during the next build.

01

Transactional output

Pages, assets, redirects, and plugin output are completed in staging before the final site is replaced.

dist/index.htmlassets/site.cssCurrent site
Ready
.dist.staging/index.htmlassets/site.cssNew build

Choose an outcome to inspect the transaction.

02

Isolated plugins

Run selected plugins in separate Deno processes with every runtime capability denied until explicitly granted.

DENIED network: permission not granted
Select permissions, then run the simulated plugin request.
Tau

Markup that looks like the page it creates.

Tau combines layouts, components, conditions, collections, includes, filters, and contextual escaping in a compact compiled template language.

Explore Tau syntax
layouts/article.tauEditable
Rendered outputLive

Begin with a theme. Make it yours.

Minimal@steno/theme-minimalBuild your own

Small core. Useful capabilities.

Start with Markdown and add structure only when the site asks for it.

Zero-config mode

Build a Markdown file or directory without creating a configuration file first.

Configured projects

Control themes, plugins, collections, redirects, output, and project-wide metadata.

Local or remote themes

Use a local directory or resolve versioned themes from JSR, npm, and HTTPS sources.

Persistent build cache

Reuse validated build state across processes for warm and incremental compilation.

Content collections

Filter, sort, limit, and validate groups of pages for blogs, indexes, and archives.

YAML or TOML

Choose either configuration format and use YAML or TOML frontmatter in content.

Markdown includes

Compose reusable content safely with root confinement and circular-include detection.

Data and environment

Load project data files and expose explicitly public environment values to templates.

Managed head tags

Define links, metadata, and scripts without manually rebuilding the document head.

Static redirects

Generate redirect pages with the same collision checks used for pages and assets.

Live development

Rebuild changed content and refresh the browser through the included development server.

Bounded rendering

Keep Tau compilation predictable with explicit cache, nesting, and output limits.

Build something worth publishing.

Start with a configured project, then keep only the complexity your site earns.

Type to search guides, configuration, Tau, plugins, and API references.