Browser-native
No installer, no electron wrapper. Open a .stage in any modern browser and present immediately, even from file://.
- Chrome≥ 109
- Firefox≥ 115
- Safari≥ 16
- file://works
A strict manifest, capability-gated sandbox, and byte-reproducible zip — wrapped around the HTML you already wrote.
No installer, no electron wrapper. Open a .stage in any modern browser and present immediately, even from file://.
A signed, byte-reproducible zip with a strict manifest. Same input, same SHA-256, every time.
{ "schema": "slidestage@1.0", "totalSlides": 12}Laser pointer, persistent ink, multi-color highlighter, blackout, second-screen audience window — all PowerPoint-grade, all keyboard-driven.
reveal.js, impress.js, html-ppt-skill, huashu-design, or plain HTML. Auto-detected, packed without modification.
→reveal.js detected→impress.js detected→html-ppt detected→plain-html detectedpnpm mirror folds every external image, font, and CSS into the .stage so the deck plays identically with no network.
English and 简体中文 out of the box. URL ?lang= → localStorage → navigator resolution, full key parity tested.
SlideStage is split into a runtime, a platform, and a packer — share the same .stage container.
Local-first runtime for .stage decks.
A single static bundle (~200 KB) that opens, presents, and converts .stage decks. Runs from file:// or any static host — GitHub Pages, Netlify, Vercel, Nginx.
Multi-user platform for teams.
Upload, organize, and share decks across your org. Built on the same .stage contract as Lite — your decks stay portable.
Pack any HTML deck in one command.
Zero-dependency CLI + Cursor agent skill. Auto-detects reveal.js, impress.js, plain HTML — emits a byte-reproducible .stage zip ready to play.
No build step, no install step. The packer reads your folder, writes a strict manifest, and ships a single .stage zip.
The same packer powers SlideStageLite's in-browser converter and the slidestage-pack Cursor skill.
$ pnpm convert pack ./my-deck \
--out ./my-deck.stage
✓ Packed: my-deck.stage
Size: 123.4 KB
Slides: 12
SHA256: abc1234…
Source: reveal.js → wrap
$ The desktop build is the same .stage runtime as the web app, packaged with Tauri — a multi-monitor presenter view, double-click .stage to open, and full offline use.
macOS · Windows
Free and open source. Builds are published as signed GitHub Releases.
No signup, no install. Drop a .stage into SlideStageLite or pack your existing HTML in 60 seconds.