Slide deck maker that exports one HTML file — present it, or print it as PDF
Build a deck from layout templates, then drag anything that is not where you want it. What comes out is a single self-contained HTML file: open it and present full screen one slide at a time, moving with the arrow keys or the on-screen buttons, or print that same file and get one 16:9 page per slide. It needs no account, no plugin and no internet — it opens from an email attachment or a USB stick on a laptop you have never seen before. Your deck stays in this browser while you work on it.
- Nothing is uploaded — your work stays in this browser
- Works offline
Your title here
A subtitle, a date, or your name
Add a slide
Click a block on the slide to edit it. Drag it to move it, and drag the square at its bottom-right corner to resize. Positions are stored as a percentage of the slide, so what you arrange here is what prints and what the exported file shows.
Print / Save as PDF prints the deck itself — every slide, one per 16:9 page, and none of this editor comes with it. A dark theme prints dark without you having to find the “Background graphics” checkbox.
Download HTML gives you the deck and the PDF at once. Open it and press F11 to present full screen — arrow keys, the Prev and Next buttons, Page Down, space and swipe each move one slide. It presents and prints with scripting switched off, so it opens from an email, a USB stick or a locked-down laptop; the arrow keys are the only thing that needs the small inline script.
How it works
- 1
Start each slide from a layout
Title, title and bullets, two columns, an image with a caption, a pull quote, or blank. The template puts the blocks somewhere sensible and then gets out of the way — it is a starting point, not a cage. Most decks are the second one over and over, which is why duplicating a slide is one button.
- 2
Type into it, or move it
Click a block to edit its text, alignment and size. Drag the block itself to move it, and drag the small square at its bottom-right corner to resize it. Positions are stored as a percentage of the slide rather than in pixels, which is why the arrangement you see here is exactly what the exported file shows and exactly what prints — there is no conversion step anywhere to round things differently.
- 3
Pick a theme, not a colour
Five themes, three colours each: background, text and one accent. That is deliberate — a full colour picker on every element is how decks end up with seven greys and a lime green. Every theme here was checked against the WCAG contrast formula, so body text clears 7:1 on its own background and stays readable from the back of a room.
- 4
Add pictures, and know what they cost
An image is embedded in the deck as data rather than linked, because a linked image is a broken image the moment the file leaves your machine. The trade-off is size: a 4 MB photo makes the exported file at least 4 MB bigger. Resize photos before adding them if you plan to email the deck — the image resizer on this site does it in the browser.
- 5
Download one file that does both jobs
Download HTML gives you the deck. Open it and press F11 to present full screen: the left and right arrow keys move one slide at a time, and so do Page Down, the space bar, the scroll wheel, a swipe, and the Prev and Next buttons in the corner. Those buttons disappear when you print. Print that same file and every slide is one page at 297 × 167 mm, which is A4 landscape trimmed to 16:9. One file, both outputs, nothing to install at either end.
Frequently asked questions
Does the exported file need JavaScript to work?
No, and that is the part worth knowing. The deck presents, navigates and prints with scripting switched off entirely: each slide is a full-height section with CSS scroll-snap, so the wheel, a swipe, Page Down and the space bar each move exactly one slide, and the on-screen Prev and Next buttons are ordinary links to the neighbouring slide. Printing comes from a print stylesheet, not from code. On top of that sits about thirty lines of inline script that add the one thing CSS cannot do — the left and right arrow keys moving precisely one slide, which plain scroll-snap turns into a jitter that snaps back where it started. If that script is blocked or fails, you lose the arrow keys and keep everything else. Nothing in it reads anything, sends anything or touches storage.
How do I turn the deck into a PDF?
Print the downloaded HTML file and choose Save as PDF. The file sets its own page size to 297 × 167 mm with zero margins, so each slide lands on exactly one page with nothing cropped and no blank pages between. Leave the print dialog’s scaling at Default; there is nothing else to set. In particular you do not need to hunt for the “Background graphics” checkbox, which is off by default in Chrome and strips every CSS background from the page — each slide here paints its own background as part of the page instead, so a dark theme prints dark whether that box is ticked or not. The Print button on this page produces the same document, because it prints that same file rather than this one.
Is my deck uploaded anywhere?
No. Nothing you type or add here is transmitted — there is no server to receive it, and you can confirm that by switching the network off, at which point the page keeps working. Your deck is saved in this browser’s local storage so that closing the tab does not lose a half-finished deck, in the same way the invoice maker keeps a draft. That copy lives on your device, we cannot read it, and clearing your browser data removes it. It also means the deck does not follow you to another computer, so download the file if you need it elsewhere.
Why 16:9 only, and not 4:3?
Because every screen and projector sold in the past decade is 16:9 or wider, and supporting two aspect ratios means every template needs two layouts and every position needs checking twice. A 4:3 deck shown on a 16:9 screen gets bars down both sides, which is the outcome people are usually trying to avoid. If you specifically need 4:3, this is not the right tool and that is a better answer than a second set of layouts nobody maintains.
Can I open the exported file again and keep editing?
Not in this tool — the export is a finished document, not a project file. Your editable deck is the one held in this browser, so come back to this page and it is still here. If you want to change an exported file directly, it is ordinary HTML with an ordinary stylesheet at the top, so any text editor will do it, and the visual HTML editor on this site will open it and let you edit the text by clicking.
Why can I only drag blocks, and not draw shapes or add arrows?
Because that is a different product and a much larger one. Shapes, layers, grouping and freehand drawing is what a design tool does, and building a worse version of one here would take months and produce something you would rather do in the tool you already have. What this page is for is the deck you need by tomorrow morning: pick a layout, type into it, nudge the two things that are in the wrong place, and export. The blocks are fixed kinds — heading, text, bullets, quote, image — for the same reason the themes are fixed.
The text on my slide is overflowing its box. What do I do?
Make the box taller, make the text smaller with the size slider, or split the slide in two. Nothing is auto-shrunk to fit, and that is on purpose: text that silently resizes itself gives you a deck where every slide is a slightly different size and no two headings match. Overflow is visible here so you can fix it deliberately rather than discovering it on a projector. As a rule, a slide with more than about six bullet points is two slides.
Does the deck look the same for the person I send it to?
The layout does, because everything is positioned as a percentage of the slide and scales with whatever screen it is opened on. The typeface may differ slightly: the exported file uses the system font stack rather than loading a font, so it uses whatever sans-serif or serif that machine has. That is a deliberate trade — a deck that loads a font is a deck that looks wrong when opened without internet, which is exactly the situation this format is meant to survive.