Open Presentation Format spec
Formal source links, normative rules, and schema references for OPF.
1. Source of truth
OPF spec content is pulled from OpenPresentation/opf at build time. This site renders the format reference; it does not fork the spec.
Public npm package: @openpresentation/opf (npm install @openpresentation/opf).
Open Presentation Format is the portable, human-readable JSON document format for slide decks.
This repository is the canonical home for the OPF spec, JSON Schemas, catalog presets, examples, generated developer types, local validation tooling, and planning docs for the future render/edit/convert toolkit. OpenPresentation publishes open-source code and documentation only; it does not provide hosted APIs, hosted rendering functions, queues, storage, authentication, jobs, previews, SLAs, telemetry, or managed infrastructure.
2. Schema index
Schema files live in spec/schemas. The OPF site reads the same JSON Schema files that validators and packages consume.
3. Object index
The presentation schema also defines reusable object shapes for slides, content payloads, charts, tables, design, catalog references, and metadata.
opf.schema.json.ChartChartChart content. The chart object keeps chart-specific fields together so slides and regions do not expose loose chart fields.ContentPayloadContent PayloadA content leaf or recursively composed group. A group contains blocks and optional composition; it cannot mix blocks with leaf payload fields. Groups may nest up to 32 levels.SlideSlideA single slide. Content can be authored as a full-slide root payload, or inside promoted named region keys such as 'left', 'center+right', and 'top:left'.4. Document contract
An OPF document MUST be valid JSON. Complete presentation documents use the *.opf.json suffix and include a slides array.
{
"$schema": "https://openpresentation.org/schema/opf/v1",
"name": "Series B narrative",
"slides": [
{
"title": "Why now",
"layout": "title-subtitle"
}
]
}