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.