The document engine for DOCX files.
Render and edit DOCX files in the browser. Use the same Document API for server-side automation and agent workflows.
Built directly on OOXML. Edits write back to the XML without an HTML conversion step.
npm install superdocSuperDoc mounts into elements you provide, so the page needs both before it runs:
<div id="superdoc-toolbar"></div>
<div id="superdoc"></div>import 'superdoc/style.css';
import { SuperDoc } from 'superdoc';
const superdoc = new SuperDoc({
selector: '#superdoc',
toolbar: '#superdoc-toolbar',
document: '/sample.docx',
documentMode: 'editing',
});document accepts a URL, a File, or a Blob. Omit it to start with a blank
DOCX. See the documentation,
React quick start for the
next step.
- DOCX-native. Pagination, sections, headers, footers, and tables stay document structures. Edits write back to the XML without an HTML conversion step.
- Browser editing. View, edit, suggest, comment, track changes, and collaborate with Yjs. The editor needs no server of its own.
- One Document API. Query, target, change, and inspect receipts in the browser or through the Node.js SDK, Python SDK, CLI, and MCP server.
- Agent-ready operations. Agents use supported document operations instead of manipulating raw XML. The engine handles the underlying OOXML parts and relationships.
SuperDoc V1 used ProseMirror as its authoritative browser editing model. A DOCX is a package of related XML parts, relationships, and assets rather than one editor tree. Server use required a simulated browser DOM, and collaboration needed a separate synchronization layer for the rest of the package.
V2 uses an OOXML-backed document model. It reads progressively, renders bounded windows, runs without a browser DOM, and synchronizes document content and package state through one collaboration model.
Read the contributing guide, browse open issues, or join Discord.
AGPLv3 for open source use. A commercial license is available for proprietary deployments.
Created and maintained by SuperDoc
SuperDoc