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
Scan Parse Tau Stage Publish
---
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

As you wish.

Recommended Configured project

Start with a complete foundation.

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

Optional Zero-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.

Fast?

Cold build 102ms

1,000 Markdown pages

Cold build 405ms4,000 pages
Warm build 32ms1,000 unchanged
Tau render 902nssimple template

Apple M5, Deno 2.9.4. Results vary by machine.

Read the benchmark methodology

Predictable.

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.html assets/site.css Current site
Ready
.dist.staging/ index.html assets/site.css New 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.
Meet... Tau

Markup that looks like the page it creates.

Layouts & components

Give every page a home. Reuse the parts that belong together.

<Header /> · <Footer />

Content, connected.

Bring collections, conditions, and data into your templates.

{#each posts as post}

Small syntax. Thoughtful defaults.

Compiled templates with filters and contextual escaping built in.

{title | upper}
layouts/article.tau Editable
Rendered output Live
Explore Tau syntax

Themes...

Minimal @steno/theme-minimal Build your own

...and plugins.

See all plugins

And much more.

Look over all other features Steno offers.

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.

Convince yourself.

Maybe you are still not convinced. Try Steno yourself and see how it works.

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