Share a reveal.js presentation

A reveal.js deck is an HTML document that is genuinely good at being a presentation — and genuinely bad at being sent to someone. It is index.html plus dist/, plus plugin/, plus whatever images and video you dropped in. Zip the folder and you have handed someone homework.

So decks end up exported to PDF, which throws away the fragments, the transitions and the embedded chart that was the whole point.

Drop the folder

# whatever your deck directory is
ls my-deck/
# index.html  dist/  plugin/  images/

Drag my-deck/ (or a zip of it) into Comma:

  • index.html becomes the report body — the page carrying the comment layer.
  • dist/reveal.js, dist/reveal.css, your theme, the plugins and the images upload alongside it.
  • Relative src and href references are rewritten to the uploaded assets, so the deck resolves everything it needs.

Scripts run inside a sandboxed iframe (allow-scripts, no allow-same-origin), which is what reveal.js needs to boot. Arrow keys, fragments, transitions, the Esc overview and the plugins you bundled all work at the URL exactly as they do locally.

If your deck loads reveal from a CDN

Then it really is one file, and it publishes in a single call:

curl -fsS -X POST "https://commareports.com/api/v1/reports" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html index.html \
        --arg title "Q3 architecture review" \
        '{title: $title, html: $html}')"

The folder drop is still the better default — a CDN-linked deck breaks the day the version you pinned moves, and a self-contained one doesn't.

Speaker notes

The notes plugin opens a second window. A sandboxed iframe won't, so speaker view stays a local-run feature. Two options that work: keep the published deck for the audience and run speaker view off your own copy, or move the notes into fragments and an appendix slide if the reader is meant to see them anyway.

Why publish instead of exporting a PDF

Because of what happens next. A PDF gets forwarded and commented on in a mail thread, where the feedback is detached from the slide it is about. A published deck takes anchored comments — select the claim on slide 12, leave a thread, and it stays on slide 12 across every revision. See commenting on HTML.

And when the deck changes, it changes at the same URL. PATCH a saved report id and each update appends a revision, so the link you sent before the meeting is still the current deck after it.

Who can see it

Per report: private, your team, anyone signed in at your domain, or anyone with the link — with view, comment or edit rights for link holders. An unannounced roadmap deck doesn't need a public URL to get reviewed. Full model in sharing & access control.

Limits

  • Entry HTML: 5 MB. Assets: 25 MB per file, 250 MB and 500 files total. That covers a media-heavy deck; a 4K background video may not fit.
  • Scripts run, sandboxed — no same-origin access. A slide that fetches from your internal API on a same-origin path won't; use absolute URLs.
  • 60 requests/minute per token.

Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision history.

Publish a deck →

Related