ooxml.dev is an interactive reference for ECMA-376 (Office Open XML) — the standard behind .docx, .xlsx, and .pptx files. Built by the SuperDoc team, who implemented a native OOXML renderer from scratch. Features: live previews (edit XML, see it render in real-time using SuperDoc's native OOXML engine), implementation notes (documents real-world behavior where Microsoft Word diverges from the spec), semantic spec search (18,000+ spec chunks searchable by meaning via MCP server at api.ooxml.dev/mcp), and practical guides for paragraphs, tables, borders, bidirectional text, and document creation. The OOXML spec is 5,000+ pages of PDFs with no rendering guidance — this site bridges that gap with knowledge from people who actually implemented the spec. Covers WordprocessingML (the .docx subset). SuperDoc is open source at superdoc.dev. Built by Caio Pizzol (caiopizzol.com), Head of DX at SuperDoc.

Common Gotchas

Real-world implementation issues and how to solve them.

Lessons learned from building SuperDoc — DOCX editing and tooling.

Word-Specific Issues

tblGrid is required (Word)

Despite the spec marking it optional, Word crashes without w:tblGrid in tables.

sectPr placement matters (Word)

Section properties (w:sectPr) must be the last child of w:body. Word may corrupt the document otherwise.

rsid attributes (Word)

Word adds w:rsid* attributes everywhere for revision tracking. They're optional but Word regenerates them on save.

Cross-Application Issues

Font substitution

If a font isn't available, each application substitutes differently. Embed fonts or stick to common ones.

Measurement units

OOXML uses multiple units: twips (1/20 pt), EMUs (914400/inch), half-points. Be careful with conversions.

Unit Conversion Reference

UnitFull NameConversion
twipTwentieth of a point20 twips = 1 pt
dxaTwip (alternate name)Same as twip
EMUEnglish Metric Unit914400 EMU = 1 inch
half-pointHalf a point2 half-points = 1 pt