JDF Documentation
JDF is a document format built on JSON. This documentation covers the file format, the desktop Reader, the jdf.js web embed library, and the CLI.
New here? Read Getting started for a 5-minute tour, or jump straight to embedding JDF on the web.
Building with LLMs? JDF was designed in the AI era for AI consumption — every modern LLM (GPT, Claude, Gemini, Llama) reads, edits, and generates JDF natively because the format is JSON, the language they were trained on. See Why JDF is AI-friendly for a deep comparison against PDF.
What's where
| Section | Read this if you want to… |
|---|---|
| Getting started | Install the desktop Reader, open your first .jdf file, edit it, save it. |
| Web embed (jdf.js) | Embed a .jdf document in your website with one <jdf> tag. |
| Why AI-friendly | Why LLMs read JDF natively when they can't read PDFs without a parser. |
| Format overview | Top-level shape, page layout, styles, headers, resources, internal navigation. |
| Element reference | Every element type, every property, with copy-pasteable examples. |
| Desktop Reader | Use the macOS app — open, edit, import PDFs, export, keyboard shortcuts. |
| CLI | Validate documents in CI, convert Markdown to JDF from the command line. |
The 30-second pitch
JDF (JSON Document Format) is what you get when you redesign PDF for the era of git, jq, and code review. The file is JSON. Every tool already understands JSON. So:
git diffon a.jdfshows the actual change.JSON.stringify(doc)is your PDF generator.grepfinds text.jqqueries structure.- A JSON Schema validates the file in CI.
- Embedding a document on the web is one HTML tag.
- Editing is a text editor — or the rendered viewer, both write the same JSON.