kazam/kazam
A tour in 7 slides
kazam

Why kazam

YAML in, themed static HTML out

The problem

Docs, decks, and dashboards all want a static site

The usual tradeoff
Before: Markdown is fast to write but rarely renders like a real product page
Now: A custom Next.js app that nobody wants to maintain for a docs site
Slide tools
Before: PowerPoint/Keynote lock content into binary files and one operator
Now: A YAML file per slide committed alongside the code it describes
Internal tools
Before: A random Flask app spun up for a one-off internal dashboard
Now: A YAML emitter + kazam whoever writes the data can ship the UI
How it works

YAML in, HTML out

Four steps, no frontend build system

Write YAML

One file per page. Structured components, not free-form HTML.

`kazam build`

A single Rust binary walks the directory and renders each page.

Themed output

Every page picks up the site's theme, shell, and nav — no per-page boilerplate.

Ship static HTML

Drop it on S3, Pages, Vercel, or any host that serves files.

What you get

What kazam gives you out of the box

Components
30+
Cards, decks, tables, timelines, stats, more
Runtime JS deps
0
Inline scripts only for tabs, accordions, deck nav
Build artifact
1 binary
`cargo install` and go
Themes
2 + overrides
Dark, light, plus any color token you want to pin
Three shells

One framework, three surfaces

standard

docs, landing, dashboards

Scroll page with a site-bar, nav, components. This page uses it.

document

briefs, one-pagers

Centered card, print-optimized, exports clean to PDF. No nav.

deck

slides

Full-viewport slides with keyboard nav and PDF export.

Using it today

Real sites, no frontend team

Built kazam and replaced an app in less than a day.

— Tyler Diderich
This deck is itself a kazam deck

Open examples/deck.yaml to see the 30 lines of YAML behind these slides.

Get started

Get running in under a minute

  1. 1
    Install
    `cargo install --git https://github.com/tdiderich/kazam`
  2. 2
    Scaffold
    `kazam init my-site` — drops a starter `kazam.yaml` and `index.yaml`
  3. 3
    Dev loop
    `kazam dev my-site --port 3000` — live reload on YAML change
  4. 4
    Ship
    `kazam build my-site --out dist --release` — minified HTML/CSS, ready to upload