Developer docs
Start with a JSON deck, validate it against the schema, then layer catalogs and rendering behavior on top.
Quickstart
1. Install the package
Install @openpresentation/opf — the canonical TypeScript types, schemas, and validation helpers — from npm.
pnpm add @openpresentation/opf2. Author or receive an OPF deck
Keep deck source as *.opf.json so editors, validators, agents, and git all see JSON.
import { validatePresentation } from "@openpresentation/opf"
const deck = {
name: "Launch narrative",
slides: [{ title: "The opportunity", items: ["Plain JSON", "Schema-backed", "Diffable"] }]
}
const result = validatePresentation(deck)3. Validate before rendering
Validate against the schema first. Rendering tools should reject invalid documents before attempting any OOXML or canvas output.
Source docs
These documents are pulled from the upstream OPF repository and linked directly to their source files.
OPF Catalog Schema Referencedocs/catalog-schema-reference.mdPossible Content Payload Designdocs/content-item-design-overrides.mdContent Payloadsdocs/content-payloads.mdDesign Resolutiondocs/design-resolution.mdOPF Examples Guidedocs/examples.mdHow OPF Worksdocs/how-opf-works.mdOPF Release Processdocs/release-process.mdOPF Presentation Schema Referencedocs/schema-reference.md
Core schemas
Schema reference pages render from spec/schemas/*.schema.json.
PresentationOpen-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity. Fields that reference catalog…AudienceSchema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, a…Chart TypeSchema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, a…Color SchemeSchema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), s…Font SchemeSchema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google…LanguageSchema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slid…
Package status: @openpresentation/opf on npm ↗