← Editors trial

Editors 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.

Round tripWeighted score over 99 checks, import then export through the tool's own code. Main report.
Hostile inputMean grade over ten hostile packages, 1 = a named ceiling that refuses it. Report D. Pass line 0.20.
RenderingThe tool's own UI or renderer, against Word's page. Report C.
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

/ The baseline

Baseline · MPL-2.0

LibreOffice

With Docxodus and Apryse WebViewer, one of three renderers that match Word's pagination and every piece of page furniture

Report C: exactly 6 pages, the header, the page number and the footer all where Word puts them. On the round trip it is the calibration floor at 86.9%, not a candidate.

Round trip · calibration floor
86.9%
Hostile input
0.60Pass

Scores describe the pinned versions on the published inputs, as of the reports' dates. Round trip is measured in the main report, hostile input in Report D, and rendering in Report C. Maintainers who want a result re-run or a statement printed beside it can open an issue on the trial's repository.