slides
A self-hosted markdown slide-deck editor in one Rust binary: live reveal.js preview, an MCP endpoint, and an in-app agent with review-mode changesets.
slides is a hosted editor for markdown slide decks with an unusual guarantee: what you see while typing is exactly the reveal.js player your audience opens. One Rust binary renders the markdown server-side (pulldown-cmark for prose, KaTeX for math — so formulas never pop in after the slide appears), and the preview iframe receives positional patches over WebSocket, swapping changed slide bodies in place so the preview never flickers. Rendering a 2,000-line deck takes milliseconds, so every keystroke re-renders everything — no incremental bookkeeping to get wrong. The author verified parity slide-by-slide across 818 existing course slides. The tool-facing design is where it gets interesting. There's a full HTTP API plus a JSON-RPC MCP endpoint, so a Claude Code session on another machine can drive decks programmatically: list decks, replace slides by position, fetch assets, even cut regions out of PDFs into PNGs. Tool edits arrive as *proposals* grouped into changesets that the author accepts or rejects slide-by-slide, with conflicts (two writers touching the same slide) resolved by merging with AI. And the ✦ Ask tab opens a chat with an in-app agent — a headless `claude -p` run whose only tools are the server's own MCP endpoint — so you can say "add three slides after slide 14" and review the result as a diff. The repo description says it all: "Vibecoded Slide-Making App." A PL professor's course tooling, rebuilt as a single binary with agent-native editing, review workflows, and three deploy recipes (TLS-only, basic auth, Authelia) in `deploy/`. Note on the screenshot: slides is a self-hosted Docker app with no public demo and no product shots in the README, so the repo page stands in as the last-resort image per our screenshot rules — the project itself is verified live and actively developed. Note: This project is curated by the VibeFix editors from public sources. All rights belong to the original creator.











