← Editors trialEditors trial·The field·13 tools and a baseline
Every tool here leads somewhere.
The projects below are DOCX editors that legal teams can actually build on: twelve open-source projects andone commercial SDK. Each was run through its own code, on the same documents, against the same reference. No single score captures a tool: the editor that keeps every byte is not the one that refuses a hostile package best, and neither is the one that draws Word's page to the pixel. This page leads with what each one does best, and shows both measurements beside it.
1st (tied) of 13 · round tripAGPL-3.0
SuperDoc
superdoc.dev · Document engine for DOCX, built directly on OOXML
Highest round-trip fidelity in the trial
100% on the corpus: 29 of 29 critical features, every word of text, all 35 package parts, and a genuine re-save that passes untouched parts through byte for byte. Report C calls its own UI the closest thing to a Word clone.
- Round trip · 1st=
- 100.0%29/29 critical
- Hostile input · 10th
- 0.30Pass
About SuperDoc
SuperDoc's README calls it the document engine for DOCX files: render and edit in the browser, and use the same Document API for server-side automation and agent workflows. It says edits write back to the XML without an HTML conversion step, and that the engine is built directly on OOXML. The license is AGPL-3.0. The site is superdoc.dev.
5th of 13 · round tripApache-2.0
Folio
stella · Browser editor and framework-neutral OOXML engine
97.5% fidelity with every word and every part kept
100% text retention and all 35 parts survive; the only loss is the w14 paragraph ids. Folio's compareDocx is one of only two document-comparison implementations found in source across the twelve projects.
- Round trip · 5th
- 97.5%28/29 critical
- Hostile input · 5th=
- 0.56Pass
About Folio
Folio describes itself as a browser editor and a framework-neutral engine for OOXML .docx documents. Callers can embed the React, Vue, or Nuxt editor, or use folio-core without that UI. The npm name is @stll/folio-core, under the stella project. The license is Apache-2.0. The README is published in English, Simplified Chinese, and Brazilian Portuguese. The headless prose lane in this benchmark is toProseDoc then fromProseDoc, which is not the browser UI. See extras/folio.md.
4th of 13 · round tripApache-2.0
GenOffice
genspark-ai · Open-source AI Office suite: Docs, Sheets, Slides and PDF
98.5% fidelity, and a labelled SmartArt band where Word draws a blank
All 35 parts kept with one block regenerated. In Report C it is the one editor that draws the SmartArt's node texts, and its compareDocuments is the other comparison implementation found in source. The whole DOCX path is in the Apache-2.0 tree.
- Round trip · 4th
- 98.5%28/29 critical
- Hostile input · 11th
- 0.24Pass
About GenOffice
GenOffice, from genspark-ai, describes itself as an open-source AI Office suite: Docs, Sheets, Slides, and PDF, plus Markdown and HTML, with the AI panel in the editor rather than beside it. The license is Apache-2.0. The README opens with a language switcher that lists English and twenty-one translations, from Spanish through Turkish. It also ships a command-line skill and an MCP server.
1st (tied) of 13 · round tripApache-2.0 (Pro packages under the EigenPal Pro License)
eigenpal
docx-editor.dev · Document engine with React and Vue adapters and an Office.js-style Editor API
A near-exact reproduction of Word's page 3
100% on the corpus: 99 of 99 checks, every word of text and every package part kept. The main report ranks its DOM-free layout engine second for depth, and Report C finds its page 3 a near-exact match for Word's.
- Round trip · 1st=
- 100.0%29/29 critical
- Hostile input · 5th=
- 0.56Pass
About eigenpal
The eigenpal DOCX editor (docx-editor.dev) is a document engine with React and Vue adapters. The README describes the Editor API as a supported subset of Word Office.js, including automation in a browser or on a server. The repository is Apache-2.0 except where a package says otherwise. @docx-editor.dev/editor-api, @docx-editor.dev/pro, @docx-editor.dev/docx-to-pdf, and @docx-editor.dev/telemetry use the EigenPal Pro License. @docx-editor.dev/fonts is open-licensed substitutes for Word fonts. This benchmark's editor lane calls DocxEditor.createServer from editor-api, which is one of the Pro-licensed packages, and that call is a DOM-free runtime rather than the browser UI. See extras/eigenpal.md. This page does not relicense that package.
6th of 13 · round tripMIT
office-open
Demo Macro · Typed generator and parser for Word, Excel, PowerPoint, RTF and OpenDocument
Every word of text kept, at 93.5% fidelity
100% text retention and all 35 parts present after the round trip, from a library that generates, parses and patches Office documents from JSON or typed APIs with no Office installed. It is also the engine under Docen.
- Round trip · 6th
- 93.5%25/29 critical
- Hostile input · 12th=
- 0.14Below the pass line
About office-open
office-open, from Demo Macro, describes itself as AI-native Office documents for TypeScript and JavaScript: Word, Excel, PowerPoint, RTF, and OpenDocument, generated, parsed, and patched from JSON or typed APIs, with no Microsoft Office required. The license is MIT, copyright 2026 Demo Macro. The README states a coverage claim of its own, that all 2,273 elements and 1,969 attributes across the 21 OOXML Transitional schemas are implemented for generation and parsing. That sentence is the project's claim, not a measurement from this benchmark. json-to-office uses it through @office-open/docx. The playground is docx.json-to-office.com.
7th of 13 · round tripMIT
Docen
Demo Macro · Editor on TipTap, ProseMirror and LeaferJS that paginates by Word's stacking rules
Word's page count, on its own pagination
91.5% fidelity with 99.4% of the text and all 35 parts kept. Report C finds it lands on Word's page count; its README says its pagination follows Word's document grid, repeated table headers and float wrapping.
- Round trip · 7th
- 91.5%24/29 critical
- Hostile input · 12th=
- 0.14Below the pass line
About Docen
Docen is also from Demo Macro, and its DOCX engine is powered by @office-open/docx. The README says it is built on TipTap, ProseMirror, and LeaferJS, and that its pagination follows Word's stacking rules, including the document grid, table headers that repeat, and text wrapping around floats. It warns that the project is not yet stable and should not be used in production. The license is MIT, copyright 2025 Demo Macro. The live demo is docen.office-open.com.
3rd (tied) of 13 · hostile inputMIT OR Apache-2.0
WordCraft
ArtCraft · Native word processor in Rust, with its own layout engine
The deepest page-layout engine in the trial
Report C: its own renderer, and it is very good. It keeps the chart, all four SmartArt parts, the OLE object, the embedded workbook and the image, and it has the widest in-process conversion set of the twelve.
- Round trip · 9th
- 85.9%21/29 critical
- Hostile input · 3rd=
- 0.60Pass
About WordCraft
WordCraft is a Rust word processor from the ArtCraft team (getartcraft.com). The README and Cargo.toml both say the license is MIT OR Apache-2.0, copyright 2026 ArtCraft Team and the WordCraft contributors. There is no single file named LICENSE; the README points at LICENSE-MIT and LICENSE-APACHE. The ArtCraft name, wordmark, and logos in docs/brand/ are trademarks and are not covered by that license; the README says forks and modified versions must remove them. English hyphenation comes from Grady Ward's public-domain Moby Hyphenator II word list. The project's asset rule prefers icons drawn in code, in crates/ui-egui/src/icons.rs.
1st of 13 · hostile inputAGPL-3.0
Fidus Writer
Fidus Writer · Academic writing tool; the measured tree is its schema, importer and exporter
Highest hostile-input grade in the trial
0.72 in Report D: a ceiling on deep nesting and seven of the ten hostile packages cleaned, tied with LibreOffice for the most. It exports to JATS, HTML, LaTeX, Pandoc JSON, EPUB, DOCX and ODT.
- Round trip · 11th
- 23.6%7/29 critical
- Hostile input · 1st
- 0.72Pass
About Fidus Writer
The tree this benchmark measures is @fiduswriter/document, the schema, importer, and exporter package, not the whole Fidus Writer application. The license is AGPL-3.0. The README says a sample document can be exported to JATS, HTML, LaTeX, Pandoc JSON, EPUB, DOCX, and ODT, and that DOCX and ODT can take a custom template, with built-in templates named Classic and Free. The browser demo is fiduswriter.pages.fiduswriter.org.
2nd of 13 · hostile inputMIT
Plate.js
Plate · Plugin framework for rich-text editors, with a headless DOCX import and export
The best behaviour on malformed input in the trial
Its diagnostic vocabulary and its lossPolicy: 'reject' default are the best handling of malformed input measured, and it grades 0.70 on hostile packages, with named ceilings on decompression, entry flood and deep nesting.
- Round trip · 13th
- 20.6%6/29 critical
- Hostile input · 2nd
- 0.62Pass
About Plate.js
Plate is a framework for building rich-text editors on the web. The package name on npm is platejs. The license is MIT, copyright Ziad Beyens, Dylan Schiemann, Joe Anderson, and Felix Feng, with a note that an individual package directory may carry its own license. The project's own keywords describe it as a plugin framework, and DOCX is one plugin path. The harness that this benchmark runs is harness/plate. Documentation lives at platejs.org.
3rd (tied) of 13 · hostile inputMIT
docs.plus
Hossein Marzban · Real-time collaborative editor with a chatroom on every heading
Six of ten hostile packages cleaned
0.60 in Report D: decompression, entry flood, attributes, zip-slip, external relationships and active content all come out clean, and 90.5% of the text survives the round trip.
- Round trip · 12th
- 21.1%7/29 critical
- Hostile input · 3rd=
- 0.60Pass
About docs.plus
docs.plus is a real-time collaborative editor. The README's distinguishing feature is that every heading has its own chatroom, and the table of contents shows who is in that room. The license is MIT, copyright 2023–2026 Hossein Marzban. The runtime is Bun. The editor is Tiptap on Next.js. An MCP path lets Claude or ChatGPT read documents the account can open and edit documents the account owns. The site is docs.plus.
7th of 13 · hostile inputMIT
canvas-editor
hufe · Canvas and SVG editor that owns its whole rendering pipeline
Cleaned the entity, zip-slip and active-content packages
Six of the ten hostile packages come out clean in Report D, including the entity package, which most editors refuse and one keeps. Typography does not depend on the browser's editing host.
- Round trip · 10th
- 24.6%7/29 critical
- Hostile input · 7th
- 0.48Pass
About canvas-editor
canvas-editor, by hufe, is a Canvas/SVG rich-text editor. The README says that unlike a contenteditable editor it takes over the rendering pipeline so typography does not depend on the browser's editing host. The license is MIT, copyright 2021–present hufe. The npm package is @hufe921/canvas-editor. The harness imports that package and @hufe921/canvas-editor-plugin-docx, which is why the driver lists the tool as canvas-editor plus its plugin. The live demo is hufe.club/canvas-editor.
1st (tied) of 13 · round tripMIT
Docxodus
John Scrudato IV · Structure-aware OOXML engine for .NET, WebAssembly, npm and Python
Word's page geometry, to the pixel
Report C: its rasterised page geometry is identical to Word's own export and it paginates into the same 6 pages. Its round trip is the best in the study: 100.0% on the 99 checks with 35 of 35 parts kept, none changed and none dropped, and it keeps the w15, w16cid, w16du and w10 namespaces, as SuperDoc, Folio, GenOffice and eigenpal also do; the other seven editors and LibreOffice lose at least one.
- Round trip · 1st=
- 100.0%29/29 critical
- Hostile input · 8th
- 0.34Pass
About Docxodus
Docxodus calls itself a structure-aware OOXML engine: read a .docx, write it back, and expose it as HTML, markdown, a tracked-changes redline, or an in-browser editor. The tagline on the README is "Free your .docx files." The same engine is surfaced as a .NET library, a WebAssembly module, an npm package, a Python client, and command-line tools. The license is MIT, copyright Microsoft Corporation and 2025–2026 John Scrudato IV. The Python package name on PyPI is docx-scalpel. The NuGet and npm names are Docxodus. This benchmark drives it through harness/ui/docxodus.
8th of 13 · round tripProprietary (commercial)
Apryse WebViewer
Apryse Software Inc. · Commercial JavaScript document SDK; its DOCX Editor runs Apryse's office engine as WebAssembly
The only commercial, closed-source editor in the trial
Measured from the published npm package with a trial license key, through the same import and export as every other tool. The trial key stamps a watermark into each saved file; the results label it and never remove it. The benchmark is not affiliated with, sponsored or endorsed by Apryse.
- Round trip · 8th
- 89.9%25/29 critical
- Hostile input · 9th
- 0.32Pass
About Apryse WebViewer
Apryse WebViewer is a closed-source JavaScript document SDK, and the only commercial, closed-source tool in the round-trip lanes. Its DOCX Editor edits a Word file in the browser with Apryse's own office engine, compiled to WebAssembly, and saves it back as DOCX. The npm package keeps the company's former name, @pdftron/webviewer. The trial measures version 12.2.1 with a trial license key, which stamps a watermark picture into every file it saves. When it starts, the SDK posts its license key, a language code and its version to pws-collect.pdftron.com; the document's text and file name are not in that request. This benchmark drives it through harness/apryse.
Who makes it. Apryse Software Inc., formerly PDFTron, sells document SDKs to software developers — WebViewer, and PDF, Office and CAD SDKs — and the Xodo apps to end users. Its company page names Thoma Bravo and Silversmith Capital Partners as investors (apryse.com/company, read 2026-11-01).
No affiliation. This benchmark is independent. It is not affiliated with, sponsored by, or endorsed by Apryse, or by any other vendor it measures. Apryse WebViewer was measured from the published npm package with a trial license key; the watermark that key stamps into every saved file is labelled in the results, not removed. Apryse, WebViewer, PDFTron and Xodo are trademarks of their owner.