Your reveal.js deck looks perfect on localhost — arrow-key navigation, fragments, speaker notes, your theme. But a folder of HTML, CSS, and plugin files doesn't survive being emailed or dropped in a chat: the recipient double-clicks index.html and the paths break. Skip the deploy. Drop the single file, or zip the project folder with its assets, and get a private, unguessable link in seconds. The person you send it to opens the live deck in any browser — no account, no install — with every transition and shortcut working exactly as it does on your machine.
Try it now
Drop a file — get a private link in seconds. No sign-up.
Drop an HTML file or ZIP bundle, or click to choose.
Single file or ZIP. Max 3 MB.
Up to 3 MB, link self-destructs after 7 days. Sign up free to keep links forever, password-protect them, and store more.
If your deck exports to one self-contained file, drop the HTML and it's live. If it loads a local theme, images, or plugins from the folder, zip the project with index.html at the root and drop the ZIP — miinideck unpacks it and serves the whole deck behind one private link, so the relative paths reveal.js depends on resolve instead of breaking.
Send the link. It's no-indexed and unguessable, so an unfinished talk or internal deck never surfaces in search and only the people you send it to can open it. They drive it with arrow keys, Space, or the on-screen controls, and press S for the speaker-notes window if you left your notes in.
Add a password for a confidential pitch, set an expiry for a talk that shouldn't outlive the event, and re-upload as you revise — the link stays the same, so your audience always lands on the latest cut of the deck.
You don't need a deploy pipeline. A reveal.js deck is static HTML, CSS, and JS, so drop the index.html (or zip the project folder and drop the ZIP) and miinideck serves it behind a private link in seconds. The recipient opens it in their browser and navigates with the arrow keys — no static-host config, no server, no build step to run.
Yes. The deck runs as a real web page, so reveal.js handles everything client-side exactly as it does locally: fragment reveals, slide transitions, vertical slides, and the speaker-notes view (press S) all work. As long as the plugin and theme assets are inside the ZIP you upload, they load with the rest of the deck.
Then the deck itself is fine here, but the backend isn't. miinideck hosts the static front-end slice — your slides and their assets — not a server. If you need live audience interaction backed by a database or API routes, run that piece on a real backend host like Vercel or Netlify, and use miinideck for the private, link-only delivery of the static deck.
Yes. Every link is unguessable and no-indexed by default, so a draft or internal deck never appears in search and only the people you send the link to can reach it. Add a password (free on every plan) so even someone holding the link needs a passphrase before the first slide loads.
Yes. Turn on Review and anyone with the link can pin a comment to the exact slide or element — no account needed — and you resolve each one as you revise. Collecting and resolving that feedback is free on every plan; exporting the whole thread as a prompt for Claude or Codex is a Studio feature.
No card to try, no sign-up to get a link. Sign up free to keep links forever, password-protect them, and store more.