manifest.json Reference

The complete schema for the manifest file that defines a deck.

manifest.json is the only required metadata file in an AuraDeck presentation. It controls slide order, presentation metadata, and theming.

Full example

{
  "version": "1.0.0",
  "title": "My Presentation",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com",
    "url": "https://example.com"
  },
  "created": "2026-03-02T00:00:00Z",
  "modified": "2026-03-02T12:30:00Z",
  "description": "A presentation about interesting things.",
  "tags": ["demo", "tutorial"],
  "aspect_ratio": "auto",
  "slides": [
    {
      "index": 0,
      "file": "a1b2c3d4.html",
      "title": "Title Slide",
      "notes": "Welcome the audience. Introduce the topic.",
      "transition": "fade",
      "duration_seconds": 30.0
    },
    {
      "index": 1,
      "file": "e5f6g7h8.html",
      "title": "Overview",
      "notes": "Explain the agenda.",
      "transition": "slide-left"
    }
  ],
  "theme": {
    "background": "#0f0c29",
    "foreground": "#ffffff",
    "accent": "#e94560",
    "secondary": "#533483"
  },
  "images": [
    "images/hero-bg.svg",
    "images/chart.png"
  ],
  "global_css": "global.css"
}

Top-level fields

Field Type Required Default Description
version string No "1.0.0" Manifest schema version. Currently "1.0.0".
title string Yes Presentation title. Shown in the title bar and metadata.
author object Yes Author information (see Author).
description string Yes Short description of the presentation. Can be empty "".
created string No ISO 8601 timestamp of creation.
modified string No ISO 8601 timestamp of last modification. Updated automatically on save.
tags string[] No [] Freeform tags for categorisation.
aspect_ratio string No Slide aspect ratio. "auto", "16:9", or "4:3". Omit or set to "auto" to render at the viewport's natural ratio.
slides array Yes Ordered list of slides (see Slide entry).
theme object No Presentation-wide colour theme (see Theme).
images string[] No [] List of image asset paths relative to the manifest root. Informational — images are loaded from slide HTML directly.
global_css string No Path to a shared CSS file injected into every slide at render time.

Author

Field Type Required Description
name string Yes Author's display name.
email string No Contact email.
url string No Website or profile URL.

Slide entry

Each entry in the slides array represents one slide.

Field Type Required Default Description
file string Yes Filename of the slide HTML file, relative to the manifest root.
title string Yes Human-readable slide title. Shown in the slide panel and presenter view.
index integer No Display order index (0-based). When present, used for sorting; when omitted, array order is used.
notes string No Speaker notes shown in presenter mode. Plain text.
transition string No Transition effect when entering this slide. One of "fade", "slide-left", "slide-right", "none".
duration_seconds number No Suggested duration for this slide in seconds. Used for pacing guidance in presenter mode.

Theme

Optional colour scheme applied to the viewer chrome (not the slides themselves — slides control their own styling via inline CSS).

Field Type Required Description
background string No Background colour (CSS value, e.g. "#0f0c29").
foreground string No Text colour.
accent string No Primary accent colour.
secondary string No Secondary accent colour.

Validation

AuraDeck does not strictly validate manifest.json on load — unknown fields are preserved through round-trips and ignored. The minimum viable manifest is:

{
  "title": "Hello",
  "author": { "name": "You" },
  "description": "",
  "slides": [{ "file": "slide1.html", "title": "Slide 1" }]
}

If a slide's file does not exist in the deck, the slide is shown as an error placeholder in the editor and skipped in the viewer.

Slide HTML authoring →