Format specification

An open format for your presentations

Read, save and generate decks as structured data. Use the specification to build tools that work with that content.

A slide and the data behind it

The type identifies the slide's structure. Its content fields hold the text and other values. A renderer turns that data into a slide.

Rendered slide

A deck is data, not a rendering.

Deckyard Format specification

Slide data (excerpt)

{
  "type": "eu.deckyard.slide.quote",
  "content": {
    "quote": "A deck is data, not a rendering.",
    "authorName": "Deckyard",
    "authorTitle": "Format specification"
  }
}

The preview and the downloadable deck use the same content. The code shown here is an excerpt; use the complete file for validation.

A package carries the deck and its assets

The JSON file describes the presentation. A deck package places it in a ZIP archive alongside its manifest and bundled assets.

Deck package application/vnd.deckyard.deck

  • mimetype Media type
  • manifest.json Manifest
  • deck.json Deck data
  • theme.json Theme, if it is a database theme
  • slide-types/<slug>.json Custom slide types, if any
  • assets/<sha256>.<ext> Bundled assets

To display the deck, you need a reader and renderer that support its content. The package is not a standalone HTML player. External resources may still need a network connection.

Package details

Build on the content

  • Keep an archive

    Store the deck with its assets and record which format versions your reader supports.

    Read the file format

  • Generate decks

    Map content from another system to slide fields, then validate the result against the schemas.

    Use the schemas

  • Build a reader

    Start with the format contract and use the compatibility requirements to define what your implementation supports.

    Check compatibility

Versions, licences and compatibility

Versions
Envelope version 1; content schema version 15. These versions describe different parts of the format.
Licences
The core documents deck-format.md and deck-bundle-format.md are CC0-1.0. That licence does not cover every page in this section. Deckyard, the reference implementation, is MIT-licensed.
Media type
application/vnd.deckyard.deck identifies the package. Registration with IANA records the media type; it does not certify compatibility. The registration template
Compatibility
The conformance page defines the requirements for readers and renderers, including fallback behaviour.

Read the implementation