Presentation Format

How AuraDeck stores a deck on disk — folders, .adsl archives, and the layout inside.

A presentation in AuraDeck is just a tree of files: one manifest.json, one HTML file per slide, an images/ folder, and an optional global.css. It can live as a folder or as a single zipped archive — the two are interchangeable.

Two equivalent forms

Form Extension Created by
Folder none File → Save
Archive .adsl File → Save As .adsl

Both contain the same files and AuraDeck opens either transparently. Use folders during authoring (so you can diff in git, edit in another editor, etc.) and .adsl archives for distribution.

Directory structure

my-presentation/          # or the root of the .adsl zip
├── manifest.json         # REQUIRED — slide order, metadata, theme
├── a1b2c3d4.html         # slide files (filenames are arbitrary)
├── e5f6g7h8.html
├── images/               # image assets referenced by slides
│   ├── hero-bg.svg
│   └── chart.png
└── global.css            # optional — CSS injected into every slide

Slide filenames

Slide HTML filenames are arbitrary. AuraDeck's editor generates short hashes like a1b2c3d4.html to keep them stable when you reorder slides, but you can rename them to anything you want as long as you update the corresponding slides[].file value in manifest.json.

images/ directory

By convention, all referenced images live in images/. Slide HTML refers to them with the relative path ./images/filename.ext. AuraDeck inlines them as base64 data: URIs at present time so a single self-contained slide can be opened in a browser without the surrounding folder.

If you need other static assets (fonts, JSON data files), they can live anywhere in the deck — just reference them with a relative path from the slide.

global.css

Optional. If present and listed in manifest.jsonglobal_css, the file's contents are injected into the <head> of every slide at render time. Useful for shared design tokens (colour variables, font imports) that you do not want to duplicate across every slide.

The .adsl archive

An .adsl file is a standard ZIP archive with the extension .adsl and the MIME type application/x-auradeck-slides.

You can build one by hand with any zip tool:

cd my-presentation/
zip -r ../my-deck.adsl manifest.json *.html images/

Or rename any .adsl to .zip to inspect or extract it:

cp talk.adsl talk.zip
unzip talk.zip -d talk-folder/

The MIME registration installed by linux/install-mime.sh makes .adsl files open in AuraDeck on double-click in your file manager.

Why a custom extension?

Three reasons:

  1. Discoverability — file managers can show a distinct icon and "Open with AuraDeck" entry.
  2. Portability — a single file is easier to email or upload than a folder of files.
  3. Compression — AuraDeck decks contain a lot of plain HTML and uncompressed SVG. Zip cuts deck size by 50–80% in practice.

manifest.json reference →