A dark slide headed 'PowerPoint is a format built for machines that aren't AI.'
From the YC demo-day example deck, rendered with slaide.

From PowerPoint to Plain Text and Back

A fair question about plain-text slides is “what happens to the deck I already have?” Most people do not start from nothing. They start from a folder of .pptx files they have kept for years.

What import does

slaide import deck.pptx --out talk/

The import docs say slaide import turns a .pptx or .key into a .slaide deck plus a generated theme. It carries over text, positions, fonts, colors, gradients, images, tables and backgrounds. The Slaide core import notes say speaker notes become ??? notes blocks. What comes out is a plain-text deck you can render, export or keep editing as text.

Fidelity modes

The --fidelity flag picks how hard the import tries to match the original:

  • reconstruct is cross-platform and fully editable. It needs no PowerPoint and no sign-in.
  • hybrid is the default on Windows with PowerPoint. Charts, SmartArt and custom art that Slaide cannot draw faithfully are rasterized through PowerPoint and placed as images.
  • exact-raster makes each slide a pixel-perfect PNG, about a 99% match according to the docs. It is for archiving, not editing.

hybrid and exact-raster need a signed-in Slaide account and Windows with PowerPoint installed.

What does not survive

Heavily designed decks lose some of their design. The docs name the cases: charts, SmartArt and custom art get rasterized in hybrid mode, and animations and transitions are dropped. Merged table cells are best effort. Your mileage depends on the deck.

The check is slaide compare, which renders the original and your import and reports a per-slide match percentage:

slaide compare deck.pptx talk/deck.slaide

I have not run a large set of real decks through import, so I cannot give you a typical match rate. Run compare on your own deck before you trust the result.

Import or start fresh

My rule of thumb, and it is only an opinion. Import when the deck is content-heavy and you want to keep editing it as text: a customer proposal, a status deck, an internal all-hands. The value is in the words and the structure.

Start fresh when the design is the deck: a conference keynote with custom illustration on every slide, or a brand deck someone spent a week building. Importing that and fixing what breaks can take longer than writing fresh slides.

A test: if you could describe the deck over the phone and someone would basically get it, import it. If the deck needs to be seen to make sense, start the .slaide file empty and build the content back up.

Going the other direction

Export is the same operation in reverse:

slaide export deck.slaide --pptx deck.pptx

The CLI reference says this gives editable PowerPoint with real text, shapes and images, not a picture of each slide. Export uses headless Chromium, so run npx playwright install chromium once.

Import is the on-ramp, so that switching does not mean retyping years of decks. It does that job best for text-heavy decks. Know which kind you are holding before you run it. You can try it at getslaide.com.