AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I make a slide deck online for free without uploading anything or installing PowerPoint?

Open the Presentation Maker, pick a starter deck (startup pitch, business report, lesson or minimal) or start blank, then build 16:9 slides using six layouts — title, title + bullets, two-column, section header, image + caption and blank. Edit text, shapes and uploaded images directly on a live canvas (drag, resize, rotate), restyle the whole deck with one of six themes, reorder slides in the thumbnail rail, and play it fullscreen in present mode. Export the current slide as a PNG or the whole deck as a flat PDF, and save the deck as JSON. Everything runs in your browser — your text and images never leave your device.

  • 16:9 deck: add / duplicate / delete / reorder slides in a thumbnail rail
  • Six layouts + editable text, shape & uploaded-image layers you drag & resize
  • Deck-wide themes recolour titles, body, accents & backgrounds (system fonts)
  • Present fullscreen with arrow-key / click navigation, Esc to exit
  • Export a PNG per slide or a flat PDF; save / load the deck as JSON

What is

presentation maker

A presentation maker is a tool for building a slide deck — an ordered set of 16:9 slides carrying titles, bulleted text, shapes and images — and presenting or exporting it. A 100% client‑side presentation maker runs entirely in the browser: each slide is drawn onto an in‑browser canvas, uploaded images are composited locally, and the deck is exported as a PNG per slide or a flat PDF (one page per slide) rather than an editable .pptx, so nothing is uploaded to a server.

Design

Related terms

slide deckslideshowpitch deckPowerPoint alternativeGoogle Slides alternativepresent modeslide layout16:9PDF exportsystem fonts

Frequently Asked Questions

No. Slides are drawn on an in‑browser canvas and images are read locally, so nothing is uploaded.

The Presentation Maker is 100% client‑side. Each slide is a small object of text, numbers and colours that a pure engine draws straight onto an in‑browser <canvas>. Images you add are read locally with a FileReader and embedded in the deck as data‑URLs — they are never sent to a server or CDN. PNG export is a local canvas.toBlob, the PDF is assembled in memory with pdf‑lib, and the deck auto‑saves to your browser’s localStorage and to a JSON file you download. Nothing is fetched, uploaded, logged or stored on a server, and the tool works offline once cached.

No — it exports a flat PNG per slide or a raster PDF (one page per slide), not an editable .pptx or Slides file.

To keep everything on‑device and private, the deck exports as pictures: a high‑resolution PNG for the current slide, or a PDF with one 13.33×7.5 in widescreen page per slide, each page a raster image of that slide. So the PDF text is a picture, not selectable, and there is no editable .pptx or Google Slides output. To keep editing later, save the deck as JSON and re‑open it in this tool — the JSON is the editable, re‑loadable source of your deck.

Six slide layouts, six deck‑wide themes and four starter decks, plus a fullscreen present mode with keyboard navigation.

Every slide can use one of six layouts — title, title + bullets, two‑column, section header, image + caption and blank — and you can add extra editable text, shape and image layers on top. Six deck‑wide themes (Midnight, Ivory, Teal, Corporate, Sunset and Mono) recolour titles, body, accents and backgrounds and set a system‑font pairing in one click, and four starter decks (startup pitch, business report, lesson and minimal) give you a running start. Present mode plays the deck fullscreen: right‑arrow / space / click advances, left‑arrow goes back, Home / End jump to the first / last slide, and Esc exits.

On‑screen type uses your device’s system font stacks so it can look slightly different elsewhere; the exported PNG / PDF is fixed.

To avoid downloading any webfont and to work offline, text is set in system font stacks (Helvetica, Segoe/Roboto, Georgia, Rockwell, Impact, Trebuchet, Consolas). Your machine renders its own version of each stack, so live on‑screen type can look slightly different on another computer or OS. Once you export, the PNG and the PDF are flattened rasters, so those files look the same everywhere — only the live, editable deck depends on the viewing device’s fonts. Keep the JSON if exact type matters and re‑open it on the same kind of device.

Detailed Explanation

How It Works

What the Presentation Maker Does

The Presentation Maker is a 100% client-side slide-deck editor. You build an ordered set of 16:9 slides, each starting from one of six LAYOUTS (title, title + bullets, two-column, section header, image + caption, blank), then layer editable TEXT, SHAPES and uploaded IMAGES on top and drag, resize and rotate them on a live WYSIWYG canvas. A deck-wide THEME sets the colour scheme and a system-font pairing, a thumbnail rail adds / duplicates / deletes / reorders slides, PRESENT MODE plays the deck fullscreen, and you export a PNG per slide or a flat PDF and save / load the whole deck as JSON. Nothing is ever uploaded — every slide is drawn on an in-browser canvas.

  • 16:9 deck with six layouts and a thumbnail rail (add / duplicate / delete / reorder)
  • Editable text, shape and uploaded-image layers — drag, resize, rotate
  • Six deck-wide themes recolour titles / body / accents / backgrounds and set fonts
  • Fullscreen present mode with arrow-key / click navigation and Esc to exit
  • Export PNG per slide or a flat PDF; save / load the deck as JSON
Methodology

How It Builds and Renders a Deck

Each slide is a plain, typed object — a background plus a list of layers, every layer positioned in resolution-independent DESIGN UNITS on a fixed 1280×720 (16:9) artboard. A single pure function, drawSlide(), paints that model onto a Canvas 2D context at whatever scale the caller sets, so the SAME code renders the editor preview, every thumbnail, present mode and every exported pixel — what you see is exactly what you get. Layers carry a semantic ROLE (title, subtitle, body, bullets, accent), which is how a deck-wide theme works: switching theme recolours each layer by its role and re-applies the theme’s background and system-font pairing across every slide at once, instead of forcing you to restyle slides one by one. Bulleted bodies wrap each source line to the column width with a hanging indent and a drawn bullet dot.

  • Slides stored in design units on a fixed 1280×720 (16:9) artboard
  • One drawSlide() paints preview, thumbnails, present mode and exports identically
  • Layers tagged by role so a theme recolours the whole deck consistently
  • Bulleted bodies wrap with a hanging indent; text height auto-fits content
Technical Details

Export & Persistence Details

PNG export renders the current slide to an offscreen canvas at 1920px wide and calls canvas.toBlob. PDF export loops the deck, rasterises each slide to a PNG and embeds it full-bleed onto a pdf-lib page sized 960×540 pt (the standard 13.33×7.5 in widescreen), producing one 16:9 page per slide; pdf-lib is already a dependency and is dynamically imported so it only loads when you export. The deck auto-saves to localStorage on every edit and can be exported / imported as a JSON file; uploaded images are embedded in that JSON as data-URLs, so a saved deck restores its pictures on re-open. Imported JSON is parsed defensively — a malformed file is rejected rather than crashing the editor. Type is set only in system font stacks, so no webfont is fetched and the tool works offline once cached.

  • PNG: current slide rendered to 1920px, saved via canvas.toBlob
  • PDF: pdf-lib page 960×540 pt per slide (one 16:9 raster page each)
  • Auto-save to localStorage + JSON export/import with images embedded as data-URLs
  • Defensive JSON parsing; system-font stacks only, no CDN, works offline
Limitations

Honest Limitations

This is a deck builder, not PowerPoint. It exports a FLAT deck — a PNG per slide or those slides as raster pages in a PDF — NOT an editable .pptx or Google Slides file, so PDF text is a picture and cannot be selected; the JSON is the only editable, re-loadable source. Type uses your device’s system font stacks with no embedded webfont, so a face can look slightly different on another machine (the exported raster is fixed). There are no slide transitions, animations, speaker-notes / presenter view, charts or embedded video, and present mode simply plays your static slides fullscreen. Because uploaded images are embedded as data-URLs, an image-heavy deck can exceed the browser’s roughly 5 MB localStorage quota — if auto-save stops persisting, export the JSON to keep the deck. Very large decks are also memory-heavy to rasterise at export time on low-end devices.

  • Flat export (PNG / raster PDF) — not an editable .pptx or Slides file
  • System fonts only — on-screen type varies slightly across machines
  • No transitions, animations, speaker notes, charts or embedded video
  • Images embedded as data-URLs can exceed the ~5 MB localStorage quota — export JSON
Privacy & Security

Private by Design

Everything happens on your device. Each slide is a small object of text, numbers and colours that a pure engine draws straight onto an in-browser <canvas>. Images you add are read locally with a FileReader and embedded in the deck — they are never sent to a server or CDN. PNG export is a local canvas.toBlob and the PDF is assembled in memory with pdf-lib. The deck auto-saves to this browser’s localStorage and to a JSON file you download, both of which stay on your machine. Nothing is fetched, uploaded, logged or stored on a server, there is no CDN in the render or export path, and fonts are the device’s own system stacks. The only optional network use is consent-gated ads; the tool works offline once cached, keeps no accounts and sets no tracking, and your work is discarded when you close the tab unless you saved it.

  • Slides are local data drawn onto an in-browser <canvas>
  • Uploaded images read locally with FileReader and embedded — never uploaded
  • PNG via canvas.toBlob; PDF assembled in memory with pdf-lib
  • No server, no CDN, system fonts only; optional consent-gated ads
Ways to make a slide deck
ApproachHow it worksTrade-offUsed here
This client-side makerBuild 16:9 slides from layouts + layers, present fullscreen, export PNG/PDFPrivate + free + offline; flat export, no .pptx or animationsYes
PowerPoint / KeynoteFull desktop authoring with animations and .pptxPowerful, but paid/installed and files live in the appNo
Google Slides / cloud suitesCollaborative slides in the cloudGreat for teams, but the deck and media round-trip through an accountNo
reveal.js / HTML frameworksAuthor slides in codeFlexible and web-native, but needs coding and a build stepAlternative

Everything here runs in the browser; slides and images are never uploaded. Export is a flat PNG/PDF, not an editable .pptx. As of July 2026.