IDML vs INDD: what's the difference, and which one do you want?
Published September 2026 · by Kelly Fraser, maker of idmly
IDML is InDesign's open, XML-based interchange format. INDD is InDesign's native, binary project file. An .indd is the document you work in day to day, tied to the version of InDesign that saved it. An .idml is the same layout written out as a zipped package of XML, so it opens across InDesign versions, opens in Affinity Publisher, and can be written by software that isn't InDesign at all.
Both open as a fully editable layout. The difference is what each one is for: INDD for doing the work, IDML for moving the work somewhere else.
Most people meet this question mid-job. A file won't open in your version. A client wants "the InDesign file" and you're on Affinity. A design that started life as HTML needs to end up in InDesign. Here's the practical version.
The comparison
| IDML | INDD | |
|---|---|---|
| What it is | Open interchange format | Native project file |
| Under the hood | Zipped XML (rename it .zip and look) | Proprietary binary |
| Editable in InDesign | Fully, opens as a new untitled document | Fully |
| Across InDesign versions | CS4 and later, in either direction | Forward only: a newer version's file won't open in an older one |
| Opens in Affinity Publisher | Yes | No |
| Typical use | Handoff, version rescue, plugin and script output, generated from another source | Day-to-day editing, saving, packaging for print |
| File size | Usually smaller (compressed XML, no cached previews) | Larger (carries previews and working data) |
| Fonts and images | Fonts by name, images linked | Fonts by name, images linked (or embedded) |
| Who can write it | InDesign, Affinity Publisher, scripts, converters such as idmly | InDesign only |
What an INDD is
The .indd is InDesign's workhorse. It's a binary file that holds everything about the document as InDesign understands it, and it's the format you save to a hundred times a day without thinking.
It has one real limitation, and it's the reason this article exists: an INDD is locked to the version that saved it, going forward. A file saved in this year's InDesign won't open in last year's, and there is no "save as older version" menu item. Newer releases will offer to convert a too-new file for you, and what comes back from that conversion is an IDML. Which tells you what IDML is for.
What an IDML is
.idml stands for InDesign Markup Language. Adobe introduced it with CS4 in 2008 to replace the older INX format, and it has been the interchange format ever since. It's a ZIP archive of XML files that describe the spreads, the stories (your text), the paragraph and character styles, the colours, and the links to your images. Because it's XML, any software that follows the spec can read or write one.
Open an IDML in InDesign and you get a fresh Untitled document with everything live: text frames you can reflow, named styles you can edit, objects you can move. Save that and you have an INDD. If you want the deeper tour of what's inside the package, read What is IDML?
When you'll meet each one
INDD is every normal day. You open it, edit it, save it, package it for the printer. If everyone on the job is on the same version of InDesign, you may never touch anything else.
IDML turns up in four situations:
- 01Version mismatch. A freelancer on last year's Creative Cloud, a printer who never updates, an archive from 2014. IDML is the file that crosses the gap.
- 02Affinity Publisher. It can't open an INDD, and it can open an IDML. If either side of a handoff is on Affinity, IDML is the format.
- 03Plugins, scripts and other layout tools. Anything that generates an InDesign document without being InDesign writes IDML, because IDML is the format with a public spec.
- 04A design that started as HTML. This one is new, and it's growing fast.
The new case: your design started in a browser
Claude, ChatGPT, v0, Lovable, Bolt, Gemini and Figma Make all hand you a layout as HTML. It looks finished. It is finished, on screen. Then someone asks for the InDesign file, and InDesign has no HTML import. Not a menu item, not a plugin from Adobe, nothing.
Until recently you had two options. Print the page to PDF and place it, which gives you one flat picture with the text as outlines. Or rebuild the whole thing by hand, box by box, style by style.
IDML is the third option, and it's the one that works. Because IDML is writable by software, a converter can look at the rendered page and write the exact XML InDesign expects. That's what idmly does. It renders your HTML in a real browser, reads the computed layout, and writes a native .idml: real text frames with the text still live, named paragraph and character styles, charts redrawn as editable vectors, fonts bound by name. Under thirty seconds for a typical report. You open the result, hit Save As, and from that point on it's an INDD like any other.
Nobody chooses IDML in this workflow for its own sake. It's the bridge, and the bridge is the point.
Mistakes that cost people an afternoon
Treating the IDML as the working file
An IDML opens as Untitled every single time. If you edit it and close without saving an INDD, the edits are gone. Open it once, save the INDD, work there. Send an IDML only when you're handing off.
Expecting the fonts to travel
Neither format embeds fonts. Both record the font by name and expect it to be installed. Pink highlighting on open means a font is missing, and the fix is the same as it has always been: install it, or use Package to collect it. Because idmly binds fonts by name rather than outlining them, the same rule applies to its output. Install the fonts the design used (most AI tools reach for Google Fonts, which are free) and the pink goes away.
Expecting the images to be inside
An IDML links to images; it doesn't contain them. Open one on its own and you'll see grey boxes and a Missing Link warning. Keep the Links folder next to the file. When a design has images, idmly sends back a zip with the .idml and a Links folder together, for exactly this reason.
Going backwards without checking
An IDML opened in an older version drops or simplifies anything that version doesn't support. Usually that's nothing you'd notice. Sometimes it's a new text feature or an effect, and it's gone quietly. Open the file in the target version and look before you send it as final.
Feeding InDesign something that isn't an IDML
A raw HTML export, a .zip renamed to .idml, a file written by a tool that only roughly followed the spec: InDesign refuses all three with the same message about the file being damaged. Quick test: rename the file to .zip, open it, and look for designmap.xml at the top level. No designmap, no IDML. This is the failure behind most "my AI design broke when I opened it in InDesign" stories, and it's a tool problem, not a format problem.
Which one should you send?
Same InDesign version on both ends: package the INDD. That's what Package is for, and it collects fonts and links for you.
Different version, Affinity on either end, or you don't know: IDML, with the Links folder and a list of fonts. It opens everywhere that matters.
The design is HTML: generate the IDML. Drop the file into idmly, open what comes back, save it as an INDD, and carry on as if it had always been one.
Frequently asked questions
Is IDML the same as INDD?
Can InDesign open an IDML file?
.idml directly (File, Open). It arrives as a new untitled document, which you then save as an .indd.How do I convert an INDD to IDML?
How do I convert an IDML to INDD?
.idml in InDesign and choose File, Save As. That's the whole conversion.Can I open an INDD in an older version of InDesign?
Which is smaller, IDML or INDD?
Can I create an IDML without InDesign?
.idml straight from a self-contained HTML layout, including the ones Claude, ChatGPT, v0 and Figma Make produce.Have a design that needs to become an IDML?
Drop your HTML in and the first two pages come back as a native, editable InDesign file, free. No account needed.