Marp, Slidev and reveal.js
The build command for each framework and what to upload.
Lumdeck hosts the build output of HTML slide frameworks. Build once, upload the result, and share one link that keeps working when you upload the next version.
Marp
Marp CLI writes a single HTML file:
npx @marp-team/marp-cli@latest slides.md --html -o deck.htmlUpload deck.html. If the deck uses local images, put them next to the HTML in a folder, rename the HTML to index.html, zip the folder and upload the zip.
Slidev
Slidev builds a static site into dist/:
npx slidev build slides.md --base ./
cd dist && zip -r ../deck.zip . && cd ..Upload deck.zip. The --base ./ flag makes every asset path relative, which is what a hosted copy needs. Slidev moves between slides with the URL hash, which Lumdeck follows.
reveal.js
A reveal.js deck is a folder with index.html plus dist/ and plugin/. Zip the folder:
zip -r deck.zip index.html dist plugin assetsreveal.js decks report every slide change automatically, so per-slide reading works without changes.
Other frameworks
Anything that builds to static files works: Quarto (revealjs format), Spectacle, impress.js, a hand-written page. The rules are the same for all: an index.html at the top of the zip (or inside one top-level folder), relative paths, and no server code. See what an upload may contain.
Versions
Upload a rebuilt deck to the same presentation as a new version. Links follow the current version unless you pinned one. Free keeps the latest 3 versions, Pro 20, and Team all versions. After an upload, older non-current versions beyond the plan limit are automatically pruned, including versions pinned by share links. A link pinned to a removed version stops opening that version. Download originals you need to keep before uploading another version.
Slide tracking for custom decks
If your framework is not recognised, two small events let the deck report its slide number. See the deck protocol.