Write slides as YAML, export to PPTX, HTML, or Marp. Includes a live flow auditor that flags pacing and density issues before you present.
You write your deck as structured YAML. The editor renders a live preview as you type, flags density and flow issues in a coaching panel, and exports directly to PPTX, standalone HTML, or Marp Markdown. No install, no build step, no account.
python3 -m http.server 8000
# open http://localhost:8000Or open index.html directly in a browser.
| Type | Use when |
|---|---|
title |
First slide only |
bullets |
Listing 2 to 5 parallel points |
split |
Comparing two things side by side |
code |
Showing a focused code snippet |
quote |
A principle, stat, or user quote |
divider |
Section transition (chapter marker) |
qa |
Planned interaction point |
cta |
Final slide, one clear action |
presentation:
title: "Your Deck Title"
subtitle: "Optional subtitle"
author: "Name"
date: "2025-01"
slides:
- type: title
heading: "Opening slide heading"
subtitle: "Supporting line"
- type: bullets
heading: "What we're solving"
bullets:
- "Short fragment, not a full sentence"
- "Each bullet earns its place"
note: "Speaker note, not shown on slide"
- type: split
heading: "Before vs after"
left:
heading: "Before"
bullets: ["Slow deploys", "Manual rollbacks"]
right:
heading: "After"
bullets: ["One command", "Auto rollback on failure"]
- type: code
heading: "The fix"
language: yaml
code: |
on:
push:
branches: [main]
- type: quote
text: "If you can't explain it simply, you don't understand it."
source: "Einstein (probably)"
- type: cta
heading: "Next step"
action: "Open a PR against the infra repo"
subtext: "Link in the channel"| Format | How |
|---|---|
| PPTX | Click PPTX in the toolbar. Downloads a .pptx you can open in Keynote or PowerPoint. |
| Standalone HTML | Click HTML. Self-contained file with keyboard navigation, ready to host or share. |
| Marp Markdown | Click Marp MD. Run through Marp CLI to produce PDF, HTML, or PPTX. |
| YAML source | Click YAML. Downloads the raw source for version control or backup. |
To export PDF via Marp CLI:
npm install -g @marp-team/marp-cli
marp slides.md --pdfpresentation-sage/
├── index.html # App shell
├── css/
│ └── style.css # All styles
└── js/
├── app.js # Entry point
├── state.js # Slide state + localStorage
├── parser.js # YAML → slide model
├── render.js # Live preview rendering
├── preview.js# Preview interactions
├── audit.js # Flow coaching
├── export.js # YAML / HTML / Marp / PPTX
├── events.js # Toolbar + editor events
└── utils.js # Helpers
State autosaves to localStorage key presentation-sage.
The coaching panel (click Audit in the toolbar) checks:
- Bullet count per slide (flags anything over 5)
- Word count per bullet (flags bullets over 10 words)
- Slides with no pause or interaction point in a long run
- Missing CTA on the final slide
- First slide not of type
title
Warnings appear inline. Fix them or dismiss them — the deck still exports either way.