Your first deck¶
Create, serve, edit, and build a deck in a few commands.
Create the deck¶
First, run mkdeck new with the name of a new folder:
mkdeck new talk
The command writes a deck folder with three items, but it stops with an error if the folder already holds files.
talk/deck.md the slides
talk/deck.yml the deck settings
talk/assets/ figures, HTML pages, and images
Serve the deck¶
Next, run mkdeck serve to see the deck in a browser:
mkdeck serve talk
The command prints Slide deck: http://127.0.0.1:5020/, so open that address in a browser. From now on, mkdeck rebuilds the deck and reloads the page each time you save a file in the folder.
Add --open to open the browser for you, or add --port to pick another port. Press Ctrl-C to stop the server.
Edit a slide¶
Then edit the deck. Save any HTML page as talk/assets/run3.html, and replace the text of talk/deck.md with this deck:
---
title: "Vault runs"
date: "2026-09-18"
---
<!--
id: departure
-->
Five of five seeds cross the wall at 22 N m.

The block between the first two --- lines is the frontmatter, which holds deck settings. Because the deck sets a title, mkdeck adds an opening title slide. The comment gives the next slide an id, and the paragraph is the sentence, which is the message of the slide. The last line is a figure, which is an image, an HTML page, or a robot run on a slide. Here mkdeck frames your HTML page.
mkdeck also marks the number 22 N m in a darker ink, because readers look for numbers first.
Build the deck¶
Finally, run mkdeck build to write the deck to files:
mkdeck build talk --out site
site/index.html holds the deck, and you can publish the whole site/ folder as it is. See Build a folder for more.
Next: The deck folder.