Combine PowerPoint and HTML slides
into one presentation

Mix slides from multiple decks — PPTX or HTML — onto a single timeline. Reorder visually, present, and export as a self-contained HTML file. Runs entirely in your browser. No server upload, no signup.

Drop .html or .pptx files anywhere — or

Mix HTML and PowerPoint

Drag in .html or .pptx files. Both land on one timeline you can reorder freely.

Native HTML playback

HTML decks load with their original CSS and JS intact — animations replay natively when slides run in their source order. PowerPoint slides come through as static layouts.

Export as one file

Download a single self-contained HTML file. Recipients open it like any other web page — no app needed.

Make your HTML deck Mixdeck-ready

PowerPoint files import automatically — no setup needed. HTML decks must follow this format:

  1. Each slide is a top-level <section class="slide"> directly inside <body>. Don't nest; don't use <div>.
  2. html and body fill the viewport. Each section.slide is position: absolute + inset: 0, hidden by default, shown when it has .active.
  3. Recommended (not required): scale the deck with the viewport by setting html { font-size: min(1.25vw, 2.22vh); } and sizing everything else in rem. Non-scaling decks still work, but fixed-px sizes look small at fullscreen on a 4K display.
  4. Include the navigation script (see Starter template). Mixdeck only controls which file loads and which slide to start on (via window.STARTING_SLIDE) and forwards arrow-key presses into the iframe. The deck's own script is what adds the .active class to make a slide visible, and what responds to forwarded keys so each slide's animation replays natively when navigating inside the deck.
  5. Optional: add data-name="Chapter" to a slide and it appears as a label in the audience-facing path overlay.
  6. Design at 16:9. Animations on section.slide.active play and replay cleanly.
Already have a deck? Paste this into Claude, ChatGPT, or any LLM, then paste your existing deck content (HTML source, exported file, or outline) right after. The model will adapt it to Mixdeck's format while preserving your design.

        
Starting from scratch? Save this as mydeck.html and edit your content. Inline comments explain the Mixdeck contract — any AI assistant that keeps editing this file will know which parts must not be removed.

        

Known limitations

  • PPTX animations and embedded media don't transfer. Mixdeck converts PowerPoint slides to static HTML on import. Layout, text, and images come through; slide transitions, builds, embedded video/audio, and most custom effects do not.
  • PowerPoint conversion is approximate. Fonts may substitute and some complex shapes or chart effects render imperfectly. Always preview before presenting.
  • PowerPoint conversion uses a small bundled JS library (~200 KB), loaded the first time you import a .pptx. Files themselves are never uploaded.
  • HTML decks must match the format spec. Reveal.js, Slides.com exports, Google Slides HTML, and similar formats won't work as-is. The AI prompt above can convert most decks in one shot.
  • No undo. Tab-level autosave only. Refreshing the page offers a one-click restore. Closing the tab clears the state. Use Export to save permanently as a single HTML file.
  • Reordering can break deck-internal JS state. When slides are pulled out of their original sequence, Mixdeck loads them one at a time. JS that depends on multi-slide state in the source deck (counters, state machines) only runs correctly when a full original block is in your timeline.
  • Editing is mouse-only. Drag-to-import and drag-to-reorder don't work on touch devices. Presenting and keyboard navigation work anywhere.
Editing requires a desktop browser. Drag-to-reorder and drag-to-import don't work on touch — presenting and keyboard navigation do.
0/0