title: Why kazam
shell: deck
eyebrow: kazam
subtitle: A tour in 7 slides
slides:
- label: Cover
hide_label: true
components:
- type: image
src: /assets/favicon.svg
alt: kazam
max_width: 96
align: center
- type: header
title: "Why kazam"
subtitle: "YAML in, themed static HTML out"
align: center
- label: The problem
components:
- type: header
title: Docs, decks, and dashboards all want a static site
- type: before_after
items:
- title: The usual tradeoff
before: Markdown is fast to write but rarely renders like a real product page
after: A custom Next.js app
after_context: that nobody wants to maintain for a docs site
- title: Slide tools
before: PowerPoint/Keynote lock content into binary files and one operator
after: A YAML file per slide
after_context: committed alongside the code it describes
- title: Internal tools
before: A random Flask app spun up for a one-off internal dashboard
after: A YAML emitter + kazam
after_context: whoever writes the data can ship the UI
- label: How it works
components:
- type: header
title: YAML in, HTML out
subtitle: "Four steps, no frontend build system"
- type: card_grid
connector: arrow
cards:
- title: Write YAML
description: One file per page. Structured components, not free-form HTML.
- title: "`kazam build`"
description: A single Rust binary walks the directory and renders each page.
- title: Themed output
description: Every page picks up the site's theme, shell, and nav - no per-page boilerplate.
- title: Ship static HTML
description: Drop it on S3, Pages, Vercel, or any host that serves files.
- label: What you get
components:
- type: header
title: What kazam gives you out of the box
- type: stat_grid
columns: 4
stats:
- label: Components
value: "30+"
detail: Cards, decks, tables, timelines, stats, more
color: default
- label: Runtime JS deps
value: "0"
detail: Inline scripts only for tabs, accordions, deck nav
color: green
- label: Build artifact
value: 1 binary
detail: "`cargo install` and go"
color: default
- label: Themes
value: "2 + overrides"
detail: Dark, light, plus any color token you want to pin
color: default
- label: Three shells
components:
- type: header
title: One framework, three surfaces
- type: card_grid
cards:
- title: standard
badge:
label: docs, landing, dashboards
description: Scroll page with a site-bar, nav, components. This page uses it.
color: teal
- title: document
badge:
label: briefs, one-pagers
description: Centered card, print-optimized, exports clean to PDF. No nav.
color: green
- title: deck
badge:
label: slides
description: Full-viewport slides with keyboard nav and PDF export.
color: yellow
- label: Using it today
components:
- type: header
title: Real sites, no frontend team
- type: blockquote
body: "Built kazam and replaced an app in less than a day."
attribution: Tyler Diderich
- type: callout
variant: info
title: This deck is itself a kazam deck
body: Open `examples/deck.yaml` to see the 30 lines of YAML behind these slides.
- label: Get started
components:
- type: header
title: Get running in under a minute
- type: steps
numbered: true
items:
- title: Install
detail: "`cargo install --git https://github.com/tdiderich/kazam`"
- title: Scaffold
detail: "`kazam init my-site` - drops a starter `kazam.yaml` and `index.yaml`"
- title: Dev loop
detail: "`kazam dev my-site --port 3000` - live reload on YAML change"
- title: Ship
detail: "`kazam build my-site --out dist --release` - minified HTML/CSS, ready to upload"