Landscape snapshot — verified 2 September 2026. This document is a dated snapshot, not a living reference: package landscapes, pricing, and GitHub activity drift constantly. Every entry was verified by fetching its own npm/PyPI/crates.io registry page, GitHub repo, or vendor pricing page — see the "Sources" line under each entry. Adoption figures (stars, forks, contributors, commit frequency) were fetched live from the GitHub API on the date above for the entries with a public repository; entries with none show "—".
Scope: how the documents.js ecosystem compares against real alternatives across 11 categories and 108 verified entries — open-source libraries, cross-format conversion engines, CLI tools, MCP servers, equivalents in other language ecosystems, hyperscaler document-AI platforms, and third-party commercial/SaaS vendors. Comparison axes: direction (does it read, write, or genuinely round-trip), approach (hand-written codec vs. wraps an external engine vs. ML/OCR-based vs. template-fill), deployment model (embeddable library vs. self-hosted server vs. SaaS), licence, pricing model, and — using CHAOSS and OpenSSF accepted definitions rather than an invented scoring scheme — adoption and maintenance health.
- Foundation: byte-level codecs & archive/OLE readers
- OOXML: docx/pptx/xlsx read+write
- OpenDocument: odt/ods/odp read+write
- Markdown to/from structured content (AST)
- PDF parsing & generation
- Cross-format document conversion engines/services
- CLI / TUI tools for document conversion
- MCP servers for document/office file manipulation
- Equivalent packages in other language ecosystems
- Platform-native document-AI conversion services
- Third-party commercial document-conversion APIs & hosted LLM/RAG parsing platforms
documents.js counterpart: byte-codec, archive-codec
This is the category where documents.js's 'hand-written, dependency-minimal' claim is least differentiating — essentially every alternative is also hand-written or ported-from-C with no dependencies. The real question byte-codec has to answer is why it exists rather than depending on fflate. For archive-codec, the closest true counterpart is SheetJS's cfb, which targets MS-CFB in both directions as archive-codec now does — but cfb has no ZIP awareness, and no ZIP library has OLE/CFB support, so the combination of recursive ZIP-in-ZIP walking with depth/size guards alongside bounded CFB reading and writing in one package is genuinely unmatched, though narrow.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| pako | — | Structural | Library | (MIT AND Zlib) | Free / open source | Active |
| fflate | — | Structural | Library | MIT | Free / open source | Active |
| pngjs | — | Structural | Library | MIT | Free / open source | Stale |
| jpeg-js | — | Structural | Library | BSD-3-Clause | Free / open source | Active |
| crc-32 | — | Structural | Library | Apache-2.0 | Free / open source | Abandoned |
| cfb (js-cfb) | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Abandoned |
| jszip | Read + Write | Structural | Library | (MIT OR GPL-3.0-or-later) | Free / open source | Stale |
| @zip.js/zip.js | Read + Write | Structural | Library | BSD-3-Clause | Free / open source | Active |
| unzipper | Read only | Engine / SDK | Library | MIT | Free / open source | Active |
pako — full detail, pricing, and citations
High-speed zlib port to JS: deflate/inflate/gzip, byte-identical to the C zlib library. (npm · v3.0.1 · actively maintained)
vs. documents.js: byte-codec writes its own deflate/inflate as one primitive inside a shared foundation package; pako is a standalone compression-only library other tools pull in as a dependency.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 6.1k stars, 801 forks, 26 contributors, 1.3 commits/week avg (trailing 52wk), last push 2026-08-13
Sources: www.npmjs.com · github.com
fflate — full detail, pricing, and citations
Very fast, tree-shakeable DEFLATE/GZIP/Zlib plus high-speed ZIP archiving/extraction. (npm · v0.8.3 · ~8kB, zero deps)
vs. documents.js: Closest philosophical match to byte-codec's own ethos and appears to satisfy the Worker-isomorphic constraint on its own — the sharpest 'why not just depend on this' case in the whole survey.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 3.0k stars, 124 forks, 8 contributors, 0.2 commits/week avg (trailing 52wk), last release v0.8.3 (2026-05-16)
Sources: www.npmjs.com · github.com
pngjs — full detail, pricing, and citations
Pure-JS PNG encoder/decoder, all standard bit depths/colour types/interlacing. (npm · v7.0.0 · 2023-02-20)
vs. documents.js: Same hand-written approach as byte-codec's PNG support, but built on Node's Duplex/Readable stream classes — not Worker-isomorphic.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 741 stars, 105 forks, 42 contributors, 0.0 commits/week avg (trailing 52wk), last push 2024-03-23
Sources: www.npmjs.com · github.com
jpeg-js — full detail, pricing, and citations
Pure-JS JPEG encoder/decoder for Node.js. (npm · v0.4.4 · 2022-06-07)
vs. documents.js: Comparable hand-written approach, but its own README flags it as synchronous and slower than native alternatives; no document-format awareness.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 588 stars, 125 forks, 30 contributors, 0.0 commits/week avg (trailing 52wk), last release v0.4.4 (2022-06-07)
Sources: www.npmjs.com · github.com
crc-32 — full detail, pricing, and citations
Standard CRC-32/CRC-32C checksum implementation with a bundled CLI. (npm · v1.2.2 · 2022-04-04)
vs. documents.js: Directly comparable to byte-codec's CRC-32 primitive, but shipped as a standalone SheetJS utility rather than inside a broader foundation layer.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 351 stars, 34 forks, 6 contributors, 0.0 commits/week avg (trailing 52wk), last push 2022-08-20
Sources: www.npmjs.com · github.com
cfb (js-cfb) — full detail, pricing, and citations
Pure-JS MS-CFB (classic OLE) container reader/writer, part of SheetJS. (npm · v1.2.2 · 2022-04-06)
vs. documents.js: Closest direct counterpart to archive-codec's CFB support — same approach, same target, and the same two directions now that archive-codec writes compound files as well as reading them — but has zero ZIP awareness.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 78 stars, 15 forks, 6 contributors, 0.0 commits/week avg (trailing 52wk), last push 2022-11-10
Sources: www.npmjs.com · github.com
jszip — full detail, pricing, and citations
Create/read/edit .zip files with a Promise-based API; used as the ZIP layer under many OOXML tools. (npm · v3.10.1 · 2022-08-02)
vs. documents.js: The most common third-party ZIP dependency other tools reach for — exactly what archive-codec deliberately avoids; also dual MIT/GPL-3.0 licensed, no OLE/CFB support.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 10.4k stars, 1.3k forks, 63 contributors, 0.0 commits/week avg (trailing 52wk), last push 2025-03-28
Sources: www.npmjs.com · github.com
@zip.js/zip.js — full detail, pricing, and citations
ZIP with parallel compression, Web Streams, pluggable JS/WASM/native backends, Zip64, encryption. (npm · v2.9.0)
vs. documents.js: Far more feature-rich as a general ZIP engine than archive-codec needs to be — fine given its narrow job, but no OLE/CFB support at all.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 3.9k stars, 548 forks, 41 contributors, 15.6 commits/week avg (trailing 52wk), last release v2.9.0 (2026-08-31)
Sources: www.npmjs.com · github.com
unzipper — full detail, pricing, and citations
Node.js ZIP parsing/extraction via streams, delegating inflation to Node's built-in zlib. (npm · v0.12.5 · read-only)
vs. documents.js: Read-only and Node-specific (node:zlib, Node streams) — the opposite of archive-codec's Worker-isomorphic, zero-Node-built-in design.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 473 stars, 124 forks, 57 contributors, 0.9 commits/week avg (trailing 52wk), last release v0.12.3 (2024-07-31)
Sources: www.npmjs.com · github.com
documents.js counterpart: ooxml.js, documents.js (engine)
The npm OOXML landscape is sharply partitioned by direction and format; ooxml.js's differentiation is one package covering all three formats bidirectionally against a shared, validated schema. The write-only cluster is largest and most-adopted (docx, PptxGenJS, officegen — unmaintained since 2021); the read-only cluster is deliberately lossy (Mammoth.js, docx4js). xlsx-populate deserves credit for a genuinely different lossless strategy: preserving unmodelled parts byte-for-byte rather than fully decomposing/reassembling. Template-population tools (Docxtemplater, docx-templates, pptx-automizer, Carbone) address a large real-world niche ooxml.js doesn't touch. The commercial tier reaches these formats too — Adobe PDF Services exports PDF to Word/Excel/PPT and generates docx from templates, and OnlyOffice/Collabora convert all three natively — but always as a hosted transaction or an always-on server, never an embeddable schema-backed library.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| docx | Write only | Structural | Library | MIT | Free / open source | Active |
| PptxGenJS | Write only | Structural | Library | MIT | Free / open source | Active |
| ExcelJS | Read + Write | Structural | Library | MIT | Free / open source | Stale |
| SheetJS (xlsx) | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Stale |
| docx4js | Read + Write | Structural | Library | MIT | Free / open source | Active |
| Mammoth.js | Read only | Structural | Library | BSD-2-Clause | Free / open source | Active |
| Docxtemplater | Write only | Template | Library | MIT core; 19 modules commercially licensed | Freemium | Active |
| docx-templates | Write only | Template | Library | MIT | Free / open source | Active |
| pptx-automizer | Read + Write | Template | Library | MIT | Free / open source | Active |
| xlsx-populate | Read + Write | Structural | Library | MIT | Free / open source | Stale |
| officegen | Write only | Structural | Library | MIT | Free / open source | Stale |
| Aspose.Words Cloud SDK | Read + Write | Engine / SDK | SaaS | MIT SDK client; service is commercial | Per-page / per-unit | Active |
docx — full detail, pricing, and citations
Generates .docx (and some pptx) from scratch via a fluent object model — Document, Paragraph, Table, TextRun. (npm · v9.7.1 · ~4.5M weekly downloads)
vs. documents.js: Write-only, docx/pptx-specific, bespoke object model — no read/round-trip path, no xlsx, no cross-format schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 5.9k stars, 609 forks, 147 contributors, 2.5 commits/week avg (trailing 52wk), last release 9.7.1 (2026-05-27)
Sources: www.npmjs.com · github.com
PptxGenJS — full detail, pricing, and citations
Generates .pptx from scratch — slides, shapes, text, tables, charts, media. (npm · v4.0.1 · ~395 dependents)
vs. documents.js: pptx-only, write-only, zero runtime deps — a separate hand-rolled model per format family rather than one shared AST.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 6.1k stars, 951 forks, 68 contributors, 0.0 commits/week avg (trailing 52wk), last release v4.0.1 (2025-06-26)
Sources: www.npmjs.com · github.com
ExcelJS — full detail, pricing, and citations
Reads and writes .xlsx (cells, styles, formulas, images, frozen panes) in Node and browser. (npm · v4.4.0 · widely used)
vs. documents.js: Genuinely round-trips xlsx like ooxml.js does, but xlsx-only — no docx/pptx counterpart, no cross-format schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 15.5k stars, 2.0k forks, 226 contributors, 0.0 commits/week avg (trailing 52wk), last release v4.4.0 (2023-10-19)
Sources: www.npmjs.com · github.com
SheetJS (xlsx) — full detail, pricing, and citations
Parses/writes a very broad range of spreadsheet formats (xlsx, xls, csv, ods, many legacy formats). (npm · npm frozen at 0.18.5; current releases via SheetJS's own CDN)
vs. documents.js: Format-breadth-first rather than format-agnostic — reads far more legacy spreadsheet formats, but only spreadsheets.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 36.3k stars, 7.9k forks, 201 contributors, 0.0 commits/week avg (trailing 52wk), last push 2024-04-18
Sources: www.npmjs.com · github.com
docx4js — full detail, pricing, and citations
Parses docx/pptx/xlsx, rendering via a caller-supplied createElement or event-handler API. (npm · v3.3.0 · last published ~2 years ago)
vs. documents.js: Covers all three OOXML formats like ooxml.js, but output is a render-callback/event model aimed at display, not a validated schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 402 stars, 71 forks, 4 contributors, 0.0 commits/week avg (trailing 52wk), last push 2026-03-31
Sources: www.npmjs.com · github.com
Mammoth.js — full detail, pricing, and citations
Converts .docx to HTML or Markdown by semantic style mapping. (npm · v1.12.2 · ~1500 dependents)
vs. documents.js: Deliberately lossy — drops formatting that doesn't map cleanly to HTML; one-way, no writing, no other formats.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 6.3k stars, 667 forks, 17 contributors, 0.5 commits/week avg (trailing 52wk), last release 1.2.5 (2016-11-13)
Sources: www.npmjs.com · github.com
Docxtemplater — full detail, pricing, and citations
Template-fill: author docx/pptx/xlsx with {tag} placeholders, fill from JSON. (saas-api + npm · v3.69.3 · actively maintained)
vs. documents.js: Solves template population, not general lossless conversion; commercial-module licensing (appliance pricing $6.5k–$15k/yr) is the opposite of documents.js's fully-MIT posture.
Free tier: The core library is free and dual-licensed MIT/GPLv3, covering tag replacement, conditions, loops, delimiter customization.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free (open source core) | €0 | MIT or GPLv3 dual-licensed |
| One Module | €500/yr | 1 module, commercial licence |
| PRO | €1,250/yr | 4 modules |
| Enterprise | €3,000/yr | all 18 modules + Docker HTTP API |
| Premium | €9,000/yr | all 18 modules + full browser version + consulting |
Repository health (as of 2 September 2026): 3.6k stars, 383 forks, 36 contributors, 1.8 commits/week avg (trailing 52wk), last push 2026-08-04
Sources: docxtemplater.com · github.com · docxtemplater.com
docx-templates — full detail, pricing, and citations
Free alternative to Docxtemplater: JS-expression placeholders, no paywalled modules. (npm · v4.15.0)
vs. documents.js: Same template-population niche, fully MIT, but docx-only and not a general lossless editor.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 1.1k stars, 173 forks, 36 contributors, 0.1 commits/week avg (trailing 52wk), last release v4.15.0 (2025-12-03)
Sources: www.npmjs.com · github.com
pptx-automizer — full detail, pricing, and citations
Edits/merges existing .pptx by importing slides/shapes from template libraries. (npm · v0.9.3)
vs. documents.js: Optimised for reusing designer-built PowerPoint templates, not general-purpose lossless read/write; pptx-only.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 238 stars, 44 forks, 16 contributors, 2.5 commits/week avg (trailing 52wk), last release v0.9.2 (2026-08-22)
Sources: www.npmjs.com · github.com
xlsx-populate — full detail, pricing, and citations
Reads, edits, and writes .xlsx while preserving unsupported content byte-for-byte. (npm · v1.21.0)
vs. documents.js: A genuinely different lossless strategy — passthrough-of-the-unknown rather than ooxml.js's complete-modelling-of-the-known; xlsx-only.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 1.0k stars, 199 forks, 24 contributors, 0.0 commits/week avg (trailing 52wk), last release v1.19.1 (2019-02-13)
Sources: www.npmjs.com · github.com
officegen — full detail, pricing, and citations
Generates docx/pptx/xlsx from scratch via a stream-based API. (npm · v0.6.5 · last published 2021-03-31, unmaintained)
vs. documents.js: Historically the closest single-package docx+pptx+xlsx generator, but write-only and abandoned — the gap documents.js's active maintenance fills.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.7k stars, 466 forks, 58 contributors, 0.0 commits/week avg (trailing 52wk), last release v0.6.5 (2021-03-06)
Sources: www.npmjs.com · github.com
Aspose.Words Cloud SDK — full detail, pricing, and citations
Node SDK over the Aspose.Words Cloud REST API — create/edit/inspect/convert Word docs via a hosted service. (saas-api · actively maintained SDK)
vs. documents.js: Outsources parsing to a paid closed-source cloud service — no offline use, no browser/Worker execution, ongoing per-call cost.
Free tier: 150 API calls per month free, no credit card required; same rates apply to self-hosted Docker deployments except storage calls aren't billed there.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free allowance | $0 | 150 API calls/mo |
| First 1,000 API calls (after free) | $30 flat | per month |
| Next 14,000 API calls | $0.090 | per call |
| Next 15,000 API calls | $0.070 | per call |
| Next 60,000 API calls | $0.050 | per call |
| Beyond that | $0.007 | per call |
Repository health (as of 2 September 2026): 30 stars, 5 forks, 12 contributors, 0.7 commits/week avg (trailing 52wk), last release asposewordscloud-26.8.0 (2026-08-10)
Sources: www.npmjs.com · github.com · docs.aspose.cloud
documents.js counterpart: odf.js
The thinnest actively-maintained library category, correspondingly odf.js's strongest standalone position; odf-kit is the only serious live npm competitor and has NO ODP support at all. ODF is the format family the platform document-AI services ignore entirely, and the commercial conversion APIs and RAG-parsing platforms barely touch it. The real ODF competition isn't a library at all but the two self-hostable office servers — OnlyOffice Docs and Collabora Online — which handle odt/ods/odp comprehensively via a LibreOffice-class engine, at the cost of running a server under AGPLv3 or per-user commercial terms rather than importing a package.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| odf-kit | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Active |
| simple-odf | Write only | Structural | Library | MIT | Free / open source | Stale |
| odfjs | Read + Write | Structural | Library | CC0-1.0 | Free / open source | Active |
| officeparser | Read only | Structural | Library | MIT | Free / open source | Active |
| SheetJS (xlsx/CE) | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Active |
| Carbone | Write only | Template | Library | Commons Clause License | Free / open source | Active |
| unoconv / node-unoconv | Read + Write | Engine / SDK | CLI | MIT wrapper; unoconv itself GPL-2.0 | Free / open source | Abandoned |
| odt (legacy) | — | Structural | Library | BSD | Free / open source | Abandoned |
odf-kit — full detail, pricing, and citations
Generate/fill/read/convert ODT+ODS; also converts HTML/Markdown/TipTap/Lexical/DOCX to ODT and XLSX to ODS. (npm · v0.14.1 · publishing rapidly)
vs. documents.js: No ODP support at all, unlike odf.js's uniform odt/ods/odp coverage; converts formats as hand-wired pairs rather than through a shared schema. The velocity risk to watch.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 26 stars, 4 forks, 2 contributors, 7.3 commits/week avg (trailing 52wk), last release v0.14.1 (2026-08-11)
Sources: www.npmjs.com · github.com
simple-odf — full detail, pricing, and citations
Creates OpenDocument text (and minimal spreadsheet) files. (npm · v3.0.3 · abandoned since Jan 2023)
vs. documents.js: Write-only, only ever produced flat .fodt XML rather than proper .odt ZIP packages, per odf-kit's own comparison.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 26 stars, 9 forks, 6 contributors, 0.0 commits/week avg (trailing 52wk), last release v3.0.3 (2023-01-12)
Sources: www.npmjs.com · github.com
odfjs — full detail, pricing, and citations
Small toolbox to parse/generate ODT+ODS: typed cell reads and ODT template filling. (npm · v0.30.0 on GitHub, not conventionally npm-published)
vs. documents.js: Template-filling and typed-cell-read oriented, not a full lossless bidirectional codec; no ODP support.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2 stars, 0 forks, 4 contributors, 0.3 commits/week avg (trailing 52wk), last push 2025-09-22
Sources: github.com
officeparser — full detail, pricing, and citations
Extracts plain text from odt/odp/ods plus docx/pptx/xlsx/pdf/rtf/csv/md/html/epub. (npm · v7.8.0)
vs. documents.js: Read-only, text-extraction-only — discards structure/styling entirely; no write path.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: www.npmjs.com
SheetJS (xlsx/CE) — full detail, pricing, and citations
Covers ODS (including FODS/UOS variants) as one of many supported spreadsheet formats. (npm · v0.18.5 (npm CE build))
vs. documents.js: Spreadsheet-only, tuned for tabular interchange rather than a general document-tree schema; no ODT/ODP.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: www.npmjs.com · git.sheetjs.com
Carbone — full detail, pricing, and citations
Injects JSON data into ODT/DOCX/ODS/XLSX/ODP/PPTX templates authored in LibreOffice/MS Office. (npm · v3.8.2)
vs. documents.js: Data-merge/reporting, not general lossless read+write; non-permissive source-available licence versus odf.js's MIT.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.1k stars, 262 forks, 12 contributors, 0.2 commits/week avg (trailing 52wk), last push 2026-04-07
Sources: www.npmjs.com · github.com
unoconv / node-unoconv — full detail, pricing, and citations
Node wrappers around the Python 'unoconv' CLI, which drives LibreOffice/OpenOffice for any-to-any conversion. (npm + external CLI · npm wrapper last published 2012; unoconv archived 2025)
vs. documents.js: Requires installing and running a full LibreOffice install — not Worker/browser-portable, black-box conversion with no structural access.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.7k stars, 375 forks, 52 contributors, 0.0 commits/week avg (trailing 52wk), last release 0.8.2 (2017-12-07), archived by owner
Sources: www.npmjs.com · github.com
odt (legacy) — full detail, pricing, and citations
Early Node.js tool for working with OpenDocument text files. (npm · v1.1.0 · last published 2013)
vs. documents.js: Historical data point only — ODT-only, over a decade without release, illustrates how thin this space is.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: www.npmjs.com
documents.js counterpart: markdown-codec
The category where documents.js has the least room to claim novelty in parsing itself; markdown-codec is the most substitutable component in the family. remark/mdast plus micromark are the mature, bidirectional, plugin-rich, MIT, actively-maintained AST standard — a 'remark plus a mapper to ContentDocument' implementation is a credible alternative that would inherit remark's ecosystem for free. Markdown is also where the platform vendors (Cloudflare, Azure, Bedrock) and the commercial RAG-parsing platforms (LlamaParse, Reducto, Chunkr) have converged as an output target — but every one of them emits it only as a terminus, with no reader back into a document format.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| remark / mdast | Read + Write | Structural | Library | MIT | Free / open source | Active |
| micromark | Read only | Structural | Library | MIT | Free / open source | Stale |
| markdown-it | Read only | Structural | Library | MIT | Free / open source | Active |
| marked | Read only | Structural | Library | MIT | Free / open source | Active |
| commonmark.js | Read only | Structural | Library | BSD-2-Clause | Free / open source | Active |
| prosemirror-markdown | Read + Write | Structural | Library | MIT | Free / open source | Abandoned |
| MDX (@mdx-js/mdx) | Read only | Structural | Library | MIT | Free / open source | Active |
| Pandoc | Read + Write | Structural | CLI | GPL-2.0-or-later | Free / open source | Active |
remark / mdast — full detail, pricing, and citations
Parses CommonMark+GFM into mdast (a plugin-extensible AST), serializes back via remark-stringify. (npm · remark@15.0.1 · huge plugin ecosystem)
vs. documents.js: mdast is markdown-only; cross-format interchange goes through separate mdast-to-hast bridges to HTML, not to docx/odt directly.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 9.0k stars, 384 forks, 142 contributors, 0.1 commits/week avg (trailing 52wk), last release remark-cli@12.0.0 (2023-09-18)
Sources: www.npmjs.com · github.com
micromark — full detail, pricing, and citations
Low-level, spec-compliant CommonMark tokenizer underneath remark/mdast. (npm · v4.0.2)
vs. documents.js: The closest philosophical sibling to markdown-codec (hand-written, dependency-minimal, spec-driven) but markdown-only, no shared schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.2k stars, 88 forks, 21 contributors, 0.0 commits/week avg (trailing 52wk), last release 4.0.2 (2025-02-27)
Sources: www.npmjs.com · github.com
markdown-it — full detail, pricing, and citations
Extensible, plugin-based Markdown-to-HTML renderer with a token stream. (npm · v15.0.1)
vs. documents.js: HTML-output oriented — no first-class serializer back to markdown, no bridge to office formats.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 21.9k stars, 1.8k forks, 97 contributors, 2.3 commits/week avg (trailing 52wk), last push 2026-08-27
Sources: www.npmjs.com · github.com
marked — full detail, pricing, and citations
Fast, low-dependency Markdown-to-HTML compiler. (npm · v18.0.11)
vs. documents.js: One-directional (markdown to HTML), not CommonMark-strict by default, no serialization back to markdown.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 37.1k stars, 3.7k forks, 241 contributors, 4.1 commits/week avg (trailing 52wk), last release v18.0.11 (2026-08-24)
Sources: www.npmjs.com · github.com
commonmark.js — full detail, pricing, and citations
Official reference implementation of the CommonMark spec, parses to a manipulable AST. (npm · v0.31.2 · 2024-09-19)
vs. documents.js: Base CommonMark only (no GFM tables/strikethrough without extensions), HTML/XML output only, no markdown serializer.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 1.6k stars, 228 forks, 52 contributors, 0.1 commits/week avg (trailing 52wk), last release 0.31.2 (2024-09-19)
Sources: www.npmjs.com · github.com
prosemirror-markdown — full detail, pricing, and citations
Converts between ProseMirror's rich-text editor model and CommonMark markdown. (npm · v1.13.7)
vs. documents.js: Its target tree is an editor-oriented WYSIWYG schema, not a general document-interchange schema — no docx/odt/pdf concept.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 435 stars, 92 forks, 42 contributors, 0.1 commits/week avg (trailing 52wk), last push 2026-04-01, archived by owner
Sources: www.npmjs.com · github.com
MDX (@mdx-js/mdx) — full detail, pricing, and citations
Compiles Markdown-with-JSX through remark/mdast into executable JSX/JS components. (npm · v3.1.1)
vs. documents.js: Aimed at compiling to React components for web rendering, not lossless round-trip document conversion.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 19.8k stars, 1.2k forks, 196 contributors, 0.4 commits/week avg (trailing 52wk), last release 3.1.1 (2025-08-29)
Sources: www.npmjs.com · github.com
Pandoc — full detail, pricing, and citations
Universal markup converter — readers parse markdown (and 50+ formats) into a shared AST, writers render any target. (cli-tool (Haskell) · v3.11 · 46k+ stars, continuous development)
vs. documents.js: The one alternative that genuinely does markdown-to-docx/odt through a shared AST — but GPL, a native binary, untyped, not embeddable.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 46.1k stars, 4.0k forks, 646 contributors, 16.6 commits/week avg (trailing 52wk), last release 3.11 (2026-08-29)
Sources: pandoc.org · github.com
documents.js counterpart: pdf-codec
The most crowded category, and the one where the commercial tier is most concentrated — Adobe, Nutrient and PDF.co all sell PDF creation, conversion, OCR and redaction as metered services. No package or service combines parse+generate with participation in a cross-format schema. unpdf is the closest to pdf-codec's Worker-isomorphism (explicitly targets Cloudflare Workers) but is extraction-only; mupdf brings Artifex-grade fidelity via WASM but is AGPL-3.0. PDF remains the one format every platform and commercial document-AI service accepts, with trained models aimed squarely at scanned/handwritten pages — exposing that documents.js has no OCR or ML-assisted layout recovery at all, in a field where OCR is a standard line item on every commercial price list.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| pdf-lib | Read + Write | Structural | Library | MIT | Free / open source | Stale |
| pdfkit | Write only | Structural | Library | MIT | Free / open source | Active |
| pdf-parse | Read only | Engine / SDK | Library | MIT | Free / open source | Active |
| pdfjs-dist (PDF.js) | Read only | Structural | Library | Apache-2.0 | Free / open source | Active |
| mupdf (MuPDF.js) | Read + Write | Engine / SDK | Library | AGPL-3.0-or-later (commercial licence available) | Free / open source | Active |
| unpdf | Read only | Engine / SDK | Library | MIT | Free / open source | Active |
| jsPDF | Write only | Structural | Library | MIT | Free / open source | Active |
| muhammara | Read + Write | Engine / SDK | Library | Apache-2.0 | Free / open source | Active |
| pdfmake | Write only | Structural | Library | MIT | Free / open source | Active |
| @react-pdf/renderer | Write only | Structural | Library | MIT | Free / open source | Active |
pdf-lib — full detail, pricing, and citations
Create and modify PDFs — merge, split, fill forms, watermarks — in any JS environment. (npm · v1.17.1 · dormant since ~2021 (fork @cantoo/pdf-lib carries on))
vs. documents.js: Works against PDF's own low-level object graph as its public API; the direct MIT parse+generate comparator, but no shared cross-format schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 8.6k stars, 911 forks, 35 contributors, 0.0 commits/week avg (trailing 52wk), last release v1.17.1 (2021-11-06)
Sources: www.npmjs.com · github.com
pdfkit — full detail, pricing, and citations
Generate PDFs from scratch with a chainable, imperative drawing API. (npm · v0.20.2 · 2024-10-16)
vs. documents.js: Generation-only, imperative/procedural rather than schema-driven — no parsing/round-trip at all.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 10.7k stars, 1.2k forks, 124 contributors, 2.1 commits/week avg (trailing 52wk), last release v0.20.2 (2026-08-30)
Sources: www.npmjs.com · github.com
pdf-parse — full detail, pricing, and citations
Extracts text (and newer: images/tables/metadata) from PDFs. (npm · 1M+ weekly downloads)
vs. documents.js: One-directional text extraction — flattens to plain text, no generation or write-back at all.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: www.npmjs.com · github.com
pdfjs-dist (PDF.js) — full detail, pricing, and citations
General-purpose PDF rendering/parsing engine built on web standards. (npm · v6.3.289 · Mozilla, 3500+ dependents)
vs. documents.js: Primarily a rendering engine (content streams to pixels/DOM), not a bidirectional schema codec — no generation capability.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 53.8k stars, 10.7k forks, 525 contributors, 47.0 commits/week avg (trailing 52wk), last release v6.3.289 (2026-08-29)
Sources: www.npmjs.com · github.com
mupdf (MuPDF.js) — full detail, pricing, and citations
Official JS/WASM bindings to Artifex's MuPDF C engine, runs in Node/Bun/browsers identically. (npm · v1.28.0 · 2026-06-29)
vs. documents.js: Wraps a large native engine rather than a from-scratch codec; AGPL/paid-dual licensing is a real adoption blocker documents.js's MIT sidesteps.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 607 stars, 50 forks, 16 contributors, 0.1 commits/week avg (trailing 52wk), last release v0.3.0 (2024-08-27)
Sources: www.npmjs.com · github.com
unpdf — full detail, pricing, and citations
Serverless/edge-friendly PDF text/image/link extraction, wraps a serverless PDF.js build. (npm · v1.8.1 · UnJS ecosystem)
vs. documents.js: Closest to pdf-codec's Worker-isomorphism (explicitly targets Cloudflare Workers/edge) but extraction-only, no generation side.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 1.2k stars, 46 forks, 17 contributors, 1.1 commits/week avg (trailing 52wk), last release v1.8.1 (2026-08-13)
Sources: www.npmjs.com · github.com
jsPDF — full detail, pricing, and citations
Client-side-first PDF generation directly in the browser. (npm · long-running, widely used)
vs. documents.js: Generation-only, biased toward simple/imperative browser use; no parsing of existing PDFs, no shared schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 31.3k stars, 4.8k forks, 228 contributors, 0.8 commits/week avg (trailing 52wk), last release v4.2.1 (2026-03-17)
Sources: github.com
muhammara — full detail, pricing, and citations
High-performance native-bound PDF creation/modification/parsing for Node/Electron. (npm · v6.0.6 · active fork of discontinued HummusJS)
vs. documents.js: Depends on native C++ bindings — not Worker-isomorphic, ties consumers to Node's native-addon toolchain.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 306 stars, 63 forks, 52 contributors, 1.8 commits/week avg (trailing 52wk), last release 6.0.6 (2026-08-23)
Sources: www.npmjs.com · github.com
pdfmake — full detail, pricing, and citations
Declarative PDF generation from a JSON/JS document-definition object. (npm · long-running, widely used)
vs. documents.js: Its declarative document-definition is PDF-generation-specific — no parsing, no other target formats.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 12.3k stars, 2.1k forks, 107 contributors, 2.0 commits/week avg (trailing 52wk), last release 0.3.11 (2026-06-12)
Sources: www.npmjs.com · github.com
@react-pdf/renderer — full detail, pricing, and citations
React renderer turning component trees into PDF via a Yoga Flexbox layout engine. (npm · v4.9.0 · ~2.2M weekly downloads)
vs. documents.js: Its 'schema' is JSX/React trees, not a format-agnostic content schema; generation-only.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 16.8k stars, 1.3k forks, 168 contributors, 4.2 commits/week avg (trailing 52wk), last release @react-pdf/ui@1.0.0 (2026-08-27)
Sources: www.npmjs.com · github.com
documents.js counterpart: documents.js (engine) plus document-schema.js + codecs
The shared-AST claim needs qualifying most sharply here: Pandoc has shipped readers-and-writers-through-one-AST since 2006, and Docling explicitly calls its export lossless — the idea itself is not novel. What's unmatched is the combination: symmetric bidirectionality, a runtime-validated typed schema, MIT licensing, and in-process execution with no external runtime or server. Gotenberg is the live counter-example to 'PDF is a peer, not a junction' — PDF-output-only by construction, MIT, widely used — showing the market tolerates the hub model when PDF is the only wanted output. The two self-hostable structural servers (OnlyOffice, Collabora) prove 'no external server' is doing real work: they match on 'free to run', but each is an always-on LibreOffice-class server under AGPLv3 or per-user licensing, not an embeddable dependency. This capability is now sold as a metered primitive by every major cloud vendor and by a durable tier of independent API vendors.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| Pandoc | Read + Write | Structural | CLI | GPL-2.0-or-later | Free / open source | Active |
| Gotenberg | Write only | Engine / SDK | Server | MIT | Free / open source | Active |
| unoserver / LibreOffice headless | Read + Write | Engine / SDK | Server | MIT (unoserver); unoconv GPL-2.0, archived 2025 | Free / open source | Active |
| Apache Tika | Read only | Structural | Library | Apache-2.0 | Free / open source | Active |
| CloudConvert API | Read + Write | Engine / SDK | SaaS | Proprietary | Credit-based | Active |
| Aspose Cloud (Words/Cells/Slides) | Read + Write | Engine / SDK | SaaS | Proprietary | Per-page / per-unit | Active |
| Zamzar API | Read + Write | Engine / SDK | SaaS | Proprietary | Subscription | Active |
| Microsoft MarkItDown | Read only | Engine / SDK | CLI | MIT | Free / open source | Active |
| Docling | Read only | ML / OCR | CLI | MIT | Free / open source | Active |
| Unstructured | Read only | ML / OCR | CLI | Apache-2.0 | Free / open source | Active |
Pandoc — full detail, pricing, and citations
Dozens of readers/writers pivoting through one shared internal document tree, with a Lua filter system. (cli-tool (Haskell) · v3.8.3 · 46k+ stars, ~19k commits)
vs. documents.js: Same core idea (one shared AST) but decades-old GPL Haskell, not Worker/browser-isomorphic, semantic/textual AST rather than layout+style-fused.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 46.1k stars, 4.0k forks, 646 contributors, 16.6 commits/week avg (trailing 52wk), last release 3.11 (2026-08-29)
Sources: pandoc.org · github.com
Gotenberg — full detail, pricing, and citations
Docker-based HTTP API converting HTML/Markdown/Office to PDF by orchestrating Chromium + LibreOffice. (self-hosted-server (Docker) · major version 8, widely used)
vs. documents.js: A thin API shell over two heavyweight external programs, PDF-output-only by construction — the exact hub model documents.js's 'PDF is a peer' stance rejects.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 13.0k stars, 850 forks, 83 contributors, 6.6 commits/week avg (trailing 52wk), last release v8.36.0 (2026-08-14)
Sources: gotenberg.dev · github.com
unoserver / LibreOffice headless — full detail, pricing, and citations
Runs LibreOffice as a persistent server, exposing import/export via a lightweight protocol. (self-hosted-server · unoserver active, successor to unoconv)
vs. documents.js: Delegates all format understanding to LibreOffice's own closed-loop logic — no shared inspectable schema, fidelity is whatever LibreOffice's filters produce.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 931 stars, 107 forks, 19 contributors, 0.6 commits/week avg (trailing 52wk), last push 2026-06-10
Sources: github.com
Apache Tika — full detail, pricing, and citations
Detects file types and extracts text/metadata from 1000+ formats via a pluggable Parser interface. (maven (Java) · v4.0.0, 3.x still supported)
vs. documents.js: One-directional extraction/normalisation — no writers to regenerate a docx/pptx/odt, JVM-based rather than Worker-isomorphic.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 4.0k stars, 960 forks, 194 contributors, 23.6 commits/week avg (trailing 52wk), last push 2026-09-01
Sources: tika.apache.org · github.com
CloudConvert API — full detail, pricing, and citations
Hosted file-conversion API orchestrating LibreOffice/Chromium/FFmpeg/ImageMagick behind one job-based API. (saas-api · 212 formats across 11 categories)
vs. documents.js: Black-box hosted service — no shared schema exposed, no self-hosting, metered per conversion.
Free tier: 10 conversion credits per day free, capped at 1GB files, 5-minute processing, 5 concurrent tasks with low priority.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free | $0 | 10 credits/day — 1GB max file size, 5 concurrent tasks |
| Package (one-time) | from ~$17 per 1,000 credits | one-time, never expires |
| Subscription (monthly) | from ~$9/mo per 1,000 credits | per month, resets monthly |
| Enterprise | Custom | custom volumes |
Sources: cloudconvert.com · cloudconvert.com
Aspose Cloud (Words/Cells/Slides) — full detail, pricing, and citations
Commercial SDKs/cloud APIs, one product per format family, each with a full read/write/convert model. (saas-api · long-running commercial product line)
vs. documents.js: Each product is its own closed-source object model — N formats still means N separate proprietary engines, not one AST.
Free tier: 150 API calls per month free across all Aspose Cloud products, no credit card required.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free allowance | $0 | 150 API calls/mo across products |
| First 1,000 API calls (after free) | $30 flat | per month |
| Next 14,000 API calls | $0.090 | per call |
| Next 15,000 API calls | $0.070 | per call |
| Next 60,000 API calls | $0.050 | per call |
| Beyond that | $0.007 | per call |
Sources: docs.aspose.cloud · docs.aspose.cloud
Zamzar API — full detail, pricing, and citations
Hosted conversion API covering documents/video/images/audio/CAD/ebooks. (saas-api · 1,100+ conversion pairs, since 2015)
vs. documents.js: Metered, closed-source hosted API with no exposed intermediate schema and no self-hosting option.
Free tier: Free test account with 100 conversion credits, no card required, limited to 1MB files stored for 1 day.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Test (free) | $0 | 100 credits, 1MB file limit |
| Startup | $25/mo | 500 credits/mo ($0.05/credit) |
| Growth | $99/mo | 2,500 credits/mo ($0.04/credit) |
| Scale | $299/mo | 10,000 credits/mo ($0.03/credit) |
| Enterprise | Custom | custom, NDA, volume discounts |
Sources: developers.zamzar.com · developers.zamzar.com
Microsoft MarkItDown — full detail, pricing, and citations
Converts PDF/DOCX/PPTX/XLSX/HTML/EPUB/images/audio to Markdown for LLM/RAG ingestion. (pypi (Python) · 178k+ stars, actively maintained)
vs. documents.js: One-way, one-target (anything to Markdown only) — optimises for LLM-readability, not reconstructing the original document; Python.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 177.7k stars, 13.1k forks, 106 contributors, 0.9 commits/week avg (trailing 52wk), last release v0.1.7 (2026-07-29)
Sources: github.com
Docling — full detail, pricing, and citations
Parses complex documents into one unified DoclingDocument with ML-based layout/table understanding. (pypi (Python) · v2.124.0 · 8,000+ stars, LF AI & Data)
vs. documents.js: Closest in spirit to 'one shared representation, many readers' — but read-only (no writers back) and ML-model-based rather than hand-written.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 65.9k stars, 4.7k forks, 295 contributors, 14.2 commits/week avg (trailing 52wk), last release v2.124.0 (2026-08-31)
Sources: docling-project.github.io · github.com
Unstructured — full detail, pricing, and citations
ETL library partitioning documents into typed 'document elements' for chunking/embedding. (pypi (Python) · v0.27.5 · active, plus a commercial Platform)
vs. documents.js: One-directional extraction/ETL for LLM consumption — discards layout/style fidelity by design, no write-back.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 15.4k stars, 1.3k forks, 148 contributors, 2.9 commits/week avg (trailing 52wk), last release 0.27.5 (2026-08-28)
Sources: github.com
documents.js counterpart: document-cli
document-cli's trifecta — the full docx/pptx/xlsx/odt/ods/odp/odg/odm/odb/pdf/markdown matrix, a bundled interactive Ink TUI editor, and a shared lossless schema — is unmatched as a whole but contested leg by leg. Pandoc wins comprehensively on breadth but has no interactive mode and is GPL. The Rust cluster (office2pdf, rdocx-cli) is the closest philosophical match — hand-written, dependency-minimal, single self-contained binaries — but docx-family-only and one-directional. The TUI leg is essentially uncontested for documents specifically (glow/mdcat/md-tui are markdown-only viewers, not converters/editors). None of the commercial vendors or hosted RAG platforms compete here at all — their surface is an HTTP API or a hosted UI, so the local-CLI form factor is uncontested by that whole tier. Practical risk: Rust/Go competitors install as single binaries while document-cli requires Node.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| Pandoc | Read + Write | Structural | CLI | GPL-2.0-or-later | Free / open source | Active |
| MarkItDown | Read only | Engine / SDK | CLI | MIT | Free / open source | Active |
| Docling | Read only | ML / OCR | CLI | MIT | Free / open source | Active |
| unoserver / unoconv | Read + Write | Engine / SDK | CLI | MIT (unoserver); unoconv GPL-2.0, archived 2025 | Free / open source | Active |
| LibreOffice --headless | Read + Write | Engine / SDK | CLI | MPL-2.0 (with LGPL-3.0 components) | Free / open source | Active |
| office2pdf | Write only | Structural | CLI | Apache-2.0 | Free / open source | Active |
| rdocx-cli | Read + Write | Structural | CLI | MIT OR Apache-2.0 | Free / open source | Active |
| anydoc | Read only | Structural | CLI | MIT | Free / open source | Active |
| glow | — | Structural | CLI | MIT | Free / open source | Active |
| mdcat | — | Structural | CLI | MIT/Apache-2.0 | Free / open source | Abandoned |
| md-tui | — | Structural | CLI | AGPL-3.0-or-later | Free / open source | Active |
Pandoc — full detail, pricing, and citations
The best-known universal document converter CLI, 40+ formats via its own AST. (cli-tool (Haskell) · v3.11 · 2026-08-28)
vs. documents.js: Its own AST is the interchange layer but untyped/unvalidated; PDF output routes through an external LaTeX-class engine; no interactive mode; GPL.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 46.1k stars, 4.0k forks, 646 contributors, 16.6 commits/week avg (trailing 52wk), last release 3.11 (2026-08-29)
Sources: pandoc.org · github.com
MarkItDown — full detail, pricing, and citations
Python CLI converting PDF/DOCX/PPTX/XLSX/images/audio/HTML to Markdown. (pypi (Python) · 178k+ stars)
vs. documents.js: One-directional flatten-to-markdown for LLM consumption, not lossless bidirectional conversion; no interactive editor.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 177.7k stars, 13.1k forks, 106 contributors, 0.9 commits/week avg (trailing 52wk), last release v0.1.7 (2026-07-29)
Sources: pypi.org · github.com
Docling — full detail, pricing, and citations
Python SDK/CLI parsing documents into a unified DoclingDocument, exports to Markdown/HTML/JSON. (pypi (Python) · v2.124.0)
vs. documents.js: ML/layout-model-based, targets extraction/RAG over faithful lossless generation; no document-writing story.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 65.9k stars, 4.7k forks, 295 contributors, 14.2 commits/week avg (trailing 52wk), last release v2.124.0 (2026-08-31)
Sources: pypi.org · github.com
unoserver / unoconv — full detail, pricing, and citations
CLI/server pair driving headless LibreOffice for conversion. (pypi (Python) · unoserver active successor)
vs. documents.js: Zero own codec logic — total dependency on a running LibreOffice binary, opposite of documents.js's dependency-minimal design.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 931 stars, 107 forks, 19 contributors, 0.6 commits/week avg (trailing 52wk), last push 2026-06-10
Sources: github.com
LibreOffice --headless — full detail, pricing, and citations
LibreOffice's own headless CLI mode for batch conversion. (native application (C++) · part of actively-developed LibreOffice)
vs. documents.js: A full desktop-application binary rather than a lightweight package; no shared schema, no Worker/browser portability.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 4.3k stars, 930 forks, 2915 contributors, 162.0 commits/week avg (trailing 52wk), last push 2026-09-02
Sources: help.libreoffice.org · github.com
office2pdf — full detail, pricing, and citations
Pure-Rust CLI converting DOCX/XLSX/PPTX to PDF via the Typst engine, no LibreOffice/Chromium dependency. (crates.io (Rust) · v0.6.7 · 2026-08-13, actively updated)
vs. documents.js: Philosophically closest match in this category — hand-written, dependency-minimal, single binary — but one-directional OOXML-to-PDF only, no shared schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: crates.io
rdocx-cli — full detail, pricing, and citations
Rust CLI for DOCX inspect/extract/convert (PDF/HTML/Markdown)/diff, own layout engine. (crates.io (Rust) · v0.11.1 · 2026-08-29, actively updated)
vs. documents.js: Hand-written native codec with a built-in layout engine, no LibreOffice dependency, but DOCX-only, no bundled TUI editor.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
anydoc — full detail, pricing, and citations
Rust library/CLI converting Word/PPT/Excel/ODF/RTF/EPUB/CSV/PDF into GFM Markdown. (crates.io (Rust) · v0.2.4 · 2026-08-27)
vs. documents.js: One-way to Markdown only, no round-trip fidelity claim, no shared typed schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: crates.io
glow — full detail, pricing, and citations
Terminal Markdown reader/pager with styled rendering and a file-browser TUI. (Go (standalone binary) · 874+ commits, active)
vs. documents.js: Not a converter — a viewer/pager. No OOXML/ODF/PDF support, no conversion, no editing.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 27.2k stars, 759 forks, 53 contributors, 0.5 commits/week avg (trailing 52wk), last release v3.0.0 (2026-08-11)
Sources: github.com
mdcat — full detail, pricing, and citations
'cat for markdown' — renders CommonMark to the terminal with inline images. (crates.io (Rust) · active, maintained fork mdcat-ng)
vs. documents.js: Pure rendering, not a converter; same category gap as glow.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.4k stars, 104 forks, 30 contributors, 0.0 commits/week avg (trailing 52wk), last release mdcat-2.7.1 (2024-12-14), archived by owner
Sources: github.com
md-tui — full detail, pricing, and citations
Terminal Markdown viewer/navigator ('mdt') with keyboard-driven navigation. (crates.io (Rust) · v0.10.4 · 2026-08-31, actively updated)
vs. documents.js: Viewer/navigator, not a converter or editor; AGPL is notably more restrictive than documents.js's MIT.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 543 stars, 32 forks, 24 contributors, 1.5 commits/week avg (trailing 52wk), last release v0.10.4 (2026-08-31)
Sources: crates.io · github.com
documents.js counterpart: document-mcp
The clearest structural differentiation in the whole survey and the weakest competition — every MCP server found wraps something else: mcp-pandoc shells to Pandoc, mcp-libre drives LibreOffice, OfficeMCP wraps DocumentFormat.OpenXml+itext7 with no licence at all, @docx-mcp/docx-mcp wraps the docx npm library, Aspose.Words-MCP is non-functional without a paid SDK, CloudConvert MCP is a pure SaaS call-through. Maturity is uniformly low — several are archived or self-labelled work-in-progress. The threat has partially materialised from the commercial side too: Unstructured Platform already ships an official MCP interface over its hosted pipeline (see the Commercial & RAG SaaS category). document-mcp is plausibly the only MCP document server built on one shared typed AST with hand-written codecs and no external application or proprietary dependency at runtime — a genuine first-mover position, though the moat is thin since MCP servers are cheap to write.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| mcp-pandoc | Read + Write | Engine / SDK | CLI | MIT | Free / open source | Active |
| Office-Word-MCP-Server | Read + Write | Engine / SDK | CLI | MIT | Free / open source | Abandoned |
| docx-mcp | Read + Write | Structural | CLI | MIT | Free / open source | Stale |
| @docx-mcp/docx-mcp | Write only | Engine / SDK | CLI | MIT | Free / open source | Active |
| OfficeMCP | Read + Write | Engine / SDK | CLI | No formal license specified | Free / open source | Active |
| mcp-libre | Read + Write | Engine / SDK | CLI | MIT | Free / open source | Stale |
| Aspose.Words-MCP | Read + Write | Engine / SDK | CLI | MIT wrapper; needs paid Aspose.Words SDK | Freemium | Active |
| CloudConvert MCP | Read + Write | Engine / SDK | SaaS | Proprietary SaaS | Credit-based | Active |
| mcp-pdf-tools | Read + Write | Engine / SDK | CLI | Unlicense | Free / open source | Stale |
mcp-pandoc — full detail, pricing, and citations
MCP server exposing Pandoc as tools for Markdown/HTML/PDF/DOCX/LaTeX/RST/EPUB/ODT/IPYNB/TXT conversion. (pypi (Python) · ~579 stars, listed in modelcontextprotocol/servers)
vs. documents.js: Delegates every format's parsing/writing to Pandoc's own AST; requires a native binary, so no Worker/browser.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 579 stars, 60 forks, 11 contributors, 0.4 commits/week avg (trailing 52wk), last release v0.11.1 (2026-08-15)
Sources: pypi.org · github.com
Office-Word-MCP-Server — full detail, pricing, and citations
MCP server for creating/reading/manipulating .docx documents. (pypi (Python) · Archived by its owner in 2026)
vs. documents.js: Single-format, abandoned; wraps python-docx rather than a hand-written codec, no cross-format schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.1k stars, 284 forks, 17 contributors, 0.2 commits/week avg (trailing 52wk), last release v1.1.11 (2025-12-31), archived by owner
Sources: github.com
docx-mcp — full detail, pricing, and citations
MCP server for .docx manipulation as a standalone Rust binary. (cli-tool (Rust) · 19 commits, in development)
vs. documents.js: Closest in spirit (hand-written, dependency-light) but single-format and Rust, so can't share a schema with sibling format tools.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 32 stars, 11 forks, 1 contributors, 0.0 commits/week avg (trailing 52wk), last push 2025-08-12
Sources: github.com
@docx-mcp/docx-mcp — full detail, pricing, and citations
Node MCP server letting clients create/query/edit/save DOCX via a JSON schema, built on the docx npm library. (npm · v0.5.0 · Aug 2025)
vs. documents.js: npm/TypeScript like documents.js, but single-format, write/edit-only, wraps a third-party library rather than a hand-written codec.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Sources: www.npmjs.com
OfficeMCP — full detail, pricing, and citations
MCP server for Word/Excel/PowerPoint/PDF/Markdown via unified office_* tools. (cli-tool / .NET (C#) · ~12 commits, no release tags, early-stage)
vs. documents.js: Broadest single-project format coverage among alternatives, but no licence at all, wraps two libraries with no unifying model.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 4 stars, 2 forks, 2 contributors, 0.2 commits/week avg (trailing 52wk), last push 2026-03-04
Sources: github.com
mcp-libre — full detail, pricing, and citations
LibreOffice MCP server for Writer/Calc/Impress/Draw across 50+ formats via soffice CLI or UNO extension. (cli-tool (Python/Node) · 31 commits, actively developed)
vs. documents.js: Broadest raw format coverage of the survey, but requires a full LibreOffice install; not lossless/type-safe by design, can't run in a Worker/browser.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 101 stars, 31 forks, 2 contributors, 0.0 commits/week avg (trailing 52wk), last push 2025-06-28
Sources: github.com
Aspose.Words-MCP — full detail, pricing, and citations
MCP server automating Word creation/editing built on Aspose.Words. (pypi (Python) · 32 commits, tracks upstream SDK)
vs. documents.js: Single-format, non-functional without a paid commercial SDK — the opposite of documents.js's free, no-proprietary-dependency model.
Free tier: The MCP server wrapper itself is MIT-licensed and free, and runs in a limited Evaluation mode without a paid Aspose.Words for Python via .NET licence.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Developer Small Business (perpetual) | $1,199 | one-time + 1yr updates |
| Site SDK (perpetual) | $59,950 | one-time + 1yr updates, up to 10 devs |
| Metered (pay-per-use) | from $1,999/mo | per month, unlimited developers |
Repository health (as of 2 September 2026): 4 stars, 1 forks, 2 contributors, 0.6 commits/week avg (trailing 52wk), last push 2026-08-07
Sources: docs.aspose.com · github.com · purchase.aspose.com
CloudConvert MCP — full detail, pricing, and citations
MCP integration connecting agents to the CloudConvert cloud API. (saas-api · offered via Composio/Zapier/Activepieces)
vs. documents.js: Zero local/offline capability, requires sending documents to a third-party cloud service — the polar opposite of documents.js's local, privacy-preserving design.
Free tier: No distinct MCP pricing exists: the MCP server authenticates with the user's own CloudConvert API key and consumes that account's regular credits.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free | $0 | 10 credits/day — Sandbox API also allows unlimited free test jobs on whitelisted files |
| Package / Subscription | $9-17 per 1,000 credits | one-time or monthly |
| Enterprise | Custom | custom |
Sources: zapier.com · cloudconvert.com
mcp-pdf-tools — full detail, pricing, and citations
MCP server for merging PDFs, extracting pages, text-search across PDFs. (cli-tool (Python) · Marked 'WORK IN PROGRESS'; 17 commits)
vs. documents.js: Narrow page-level PDF ops only, no generation or cross-format conversion.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 76 stars, 9 forks, 2 contributors, 0.0 commits/week avg (trailing 52wk), last push 2024-12-22
Sources: github.com
documents.js counterpart: the documents.js family as a whole
Looking outside JS/TS confirms rather than undermines the shared-schema thesis — every mature per-format library in Java and Python uses an independent object model with no cross-format layer: Apache POI's three unrelated APIs (XSSF/XWPF/XSLF), docx4j's XSD-derived JAXB bindings, ODF Toolkit's thin DOM, python-docx/openpyxl/python-pptx as three separate unconnected projects. pypdf is the philosophical twin of pdf-codec; PyMuPDF is the counter-model (wraps native MuPDF, AGPL-3.0). Aspose.Total has the broadest commercial coverage but is closed, paid, and siloed per format — even the market leader doesn't solve the N-squared problem. documents.js's exact combination appears unreplicated in any ecosystem, but its components are individually well-precedented and the incumbents carry decades of edge-case hardening it does not.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| Apache POI | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Active |
| docx4j | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Active |
| ODF Toolkit (ODFDOM) | Read + Write | Structural | Library | Apache-2.0 | Free / open source | Active |
| python-docx / openpyxl / python-pptx | Read + Write | Structural | Library | MIT | Free / open source | Active |
| odfpy | Read + Write | Structural | Library | Apache-2.0 / GPL / LGPL (dual/tri-licensed) | Free / open source | Active |
| pypdf | Read + Write | Structural | Library | BSD-3-Clause | Free / open source | Active |
| PyMuPDF (fitz) | Read + Write | Engine / SDK | Library | AGPL-3.0 (commercial licence available) | Free / open source | Active |
| Pandoc | Read + Write | Structural | CLI | GPL-2.0-or-later | Free / open source | Active |
| Docling | Read only | ML / OCR | CLI | MIT | Free / open source | Active |
| Unstructured | Read only | ML / OCR | CLI | Apache-2.0 | Free / open source | Active |
| MarkItDown | Read only | Engine / SDK | CLI | MIT | Free / open source | Active |
| Aspose.Total | Read + Write | Engine / SDK | Library | Proprietary | Sales quote | Active |
Apache POI — full detail, pricing, and citations
The dominant Java library for reading/writing MS Office formats via three separate object models. (maven (Java) · v5.5.1 · 2025-11-30)
vs. documents.js: XSSF/XWPF/XSLF are unrelated APIs — no shared AST, no N-codecs-not-N² benefit; converting spreadsheet content to a document means hand-mapping APIs.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.3k stars, 843 forks, 75 contributors, 10.1 commits/week avg (trailing 52wk), last push 2026-09-01
Sources: poi.apache.org · github.com
docx4j — full detail, pricing, and citations
JAXB-generated object model bound to OOXML XML schemas for docx/pptx/xlsx. (maven (Java) · v17.0.4 · targets Java 11–25)
vs. documents.js: The model is OOXML's own XML schema reflected into Java, not an independent semantic schema — can't express 'convert docx to odt' without a bespoke bridge.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 2.4k stars, 1.2k forks, 61 contributors, 8.5 commits/week avg (trailing 52wk), last push 2026-09-02
Sources: www.docx4java.org · github.com
ODF Toolkit (ODFDOM) — full detail, pricing, and citations
Java toolkit for odt/ods/odp manipulation, validation, and XSLT application. (maven (Java) · v0.13.0 · 2026-01-23, under The Document Foundation)
vs. documents.js: A thin DOM over the ODF package structure, no independent semantic tree — no companion sharing a schema with an OOXML/PDF sibling.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 152 stars, 58 forks, 42 contributors, 0.5 commits/week avg (trailing 52wk), last release v0.13.0 (2026-01-23)
Sources: odftoolkit.org · github.com
python-docx / openpyxl / python-pptx — full detail, pricing, and citations
The three standard Python libraries for docx/xlsx/pptx respectively. (pypi (Python) · python-docx 1.2.0, openpyxl 3.1.5, python-pptx 1.0.2)
vs. documents.js: Closest Python analogue to ooxml.js in philosophy, but three entirely separate projects/models with no shared schema or maintainer.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 5.7k stars, 1.3k forks, 16 contributors, 0.0 commits/week avg (trailing 52wk), last push 2026-08-01
Sources: pypi.org · github.com
odfpy — full detail, pricing, and citations
Python library for odt/ods/odp, generated from and validated against the ODF RelaxNG schema. (pypi (Python) · v1.4.1 · 2020-01-18, unmaintained upstream)
vs. documents.js: Python's odf.js counterpart, stale since 2020; a community fork carries on maintenance.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 363 stars, 73 forks, 33 contributors, 0.1 commits/week avg (trailing 52wk), last push 2026-04-07
Sources: pypi.org · github.com
pypdf — full detail, pricing, and citations
Pure-Python, dependency-light PDF codec — read/write/merge/split/crop/extract. (pypi (Python) · v6.16.2 · 2026-08-23)
vs. documents.js: Closest philosophical match to pdf-codec (hand-written, no native binding) but PDF-only, no cross-format schema.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 10.2k stars, 1.6k forks, 324 contributors, 8.3 commits/week avg (trailing 52wk), last release 6.16.2 (2026-08-23)
Sources: pypi.org · github.com
PyMuPDF (fitz) — full detail, pricing, and citations
High-performance PDF/XPS/EPUB library built as bindings to the native MuPDF engine. (pypi (Python) · actively maintained, dual open/commercial)
vs. documents.js: The 'wrap a native library' approach documents.js avoids — large native C dependency, AGPL license is a real adoption constraint.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 10.6k stars, 790 forks, 96 contributors, 8.1 commits/week avg (trailing 52wk), last release 1.28.2 (2026-08-06)
Sources: pypi.org · github.com
Pandoc — full detail, pricing, and citations
Readers parse ~50 formats into one AST, writers render any target — M readers × N writers, not M×N. (cli-tool / hackage (Haskell) · actively maintained since 2006)
vs. documents.js: The architecture documents.js's claim most directly parallels — but markup-oriented, weaker OOXML/ODF fidelity, GPL, not embeddable.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 46.1k stars, 4.0k forks, 646 contributors, 16.6 commits/week avg (trailing 52wk), last release 3.11 (2026-08-29)
Sources: pandoc.org · github.com
Docling — full detail, pricing, and citations
Unifies many formats into one DoclingDocument, exports to Markdown/HTML/JSON/DocTags. (pypi (Python) · v2.124.0 · IBM Research / LF AI & Data)
vs. documents.js: The most direct single-shared-schema analogue — but built for extraction/AI consumption, not symmetric bidirectional authoring; ML-based.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 65.9k stars, 4.7k forks, 295 contributors, 14.2 commits/week avg (trailing 52wk), last release v2.124.0 (2026-08-31)
Sources: docling-project.github.io · github.com
Unstructured — full detail, pricing, and citations
Partitions documents into a common typed Element schema for LLM ingestion. (pypi (Python) · v0.27.5 · Unstructured-IO)
vs. documents.js: Shares 'one schema, many readers' but only read-direction and coarser fidelity — no write-back path.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 15.4k stars, 1.3k forks, 148 contributors, 2.9 commits/week avg (trailing 52wk), last release 0.27.5 (2026-08-28)
Sources: github.com
MarkItDown — full detail, pricing, and citations
Converts documents/images/audio into Markdown for LLM/RAG ingestion. (pypi (Python) · v0.1.7 · Microsoft)
vs. documents.js: Composes existing per-format libraries behind one Markdown output — no round-trip, no write path back.
Free tier: N/A — the package itself is free and open source; no paid tiers exist.
Repository health (as of 2 September 2026): 177.7k stars, 13.1k forks, 106 contributors, 0.9 commits/week avg (trailing 52wk), last release v0.1.7 (2026-07-29)
Sources: github.com
Aspose.Total — full detail, pricing, and citations
Dominant commercial multi-format SDK suite — separate proprietary products per format family. (commercial SDK (.NET/Java/C++/Python) · actively maintained, frequent releases)
vs. documents.js: Broad coverage and mature fidelity, but proprietary, closed-source, and siloed per format — even the market leader doesn't solve the N² problem.
Free tier: Full-featured evaluation SDKs are downloadable free with no credit card required, but are time/feature-limited for evaluation only.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Developer Small Business (perpetual) | $5,999 | one-time + 1yr updates |
| Site SDK (perpetual) | $299,950 | one-time + 1yr updates, up to 10 devs |
| Metered (pay-per-use) | from $1,999/mo | per month, unlimited developers |
Sources: www.aspose.com · purchase.aspose.com
documents.js counterpart: The ecosystem's whole positioning — MIT, hand-written, dependency-minimal, one shared schema, bidirectional, no account or per-page billing
This is the category that most directly attacks documents.js's positioning while sharing almost none of its architecture. Cloudflare's env.AI.toMarkdown() is a GA first-party binding running natively inside the exact runtime documents.js's Worker-isomorphism targets — a Worker author who wants a document turned into Markdown now has a zero-install, mostly-free path documents.js has to beat on merits rather than availability. Its hybrid architecture (structural for HTML/XML/spreadsheets, ML models for images, PDF-UA StructTree with raw-text fallback for PDF) makes it a closer technical neighbour than the other four, and also exposes its ceiling: an untagged PDF degrades to sequential text, exactly the fidelity cliff a structural codec exists to avoid. The other four are hyperscaler extraction platforms: proprietary, ML/OCR- or foundation-model-based, billed per page, strictly one-way, none capable of regenerating a document file. Textract is narrowest (JPEG/PNG/PDF/TIFF only, no office formats, $0.0015–$0.07/page); Bedrock Data Automation is a genuinely different foundation-model pipeline attaching Markdown/HTML/CSV to every extracted entity, but converts DOCX to PDF first, breaking page mapping; Document AI has the widest native ingestion (PDF, images, HTML/DOCX/PPTX/XLSX via its Layout parser) at $0.65–$30 per 1,000 pages; Azure is closest to Cloudflare on output shape (Markdown via outputContentFormat) and uniquely offers a disconnected on-premises container, but behind a commitment plan as an opaque model image. These services and documents.js solve adjacent problems with opposite emphases: they're better at scanned pages, handwriting, and semantic field extraction; documents.js is the only option for writing a document back out and preserving structure through a round trip without an account or per-page charge. ODF is entirely unserved by every one of the five.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| Cloudflare Workers AI toMarkdown | Read only | ML / OCR | SaaS | Proprietary Cloudflare platform feature | Freemium | Active |
| Amazon Textract | Read only | ML / OCR | SaaS | Proprietary AWS service | Per-page / per-unit | Active |
| Amazon Bedrock Data Automation | Read only | ML / OCR | SaaS | Proprietary AWS service | Per-page / per-unit | Active |
| Google Cloud Document AI | Read only | ML / OCR | SaaS | Proprietary Google Cloud service | Per-page / per-unit | Active |
| Azure AI Document Intelligence | Read only | ML / OCR | SaaS | Proprietary Microsoft Azure service | Freemium | Active |
Cloudflare Workers AI toMarkdown — full detail, pricing, and citations
env.AI.toMarkdown() binding + REST API converting PDF, images, HTML, XML, docx/xlsx, odt/ods, CSV and .numbers to Markdown, callable from a Worker. (cloud-platform-binding · GA)
vs. documents.js: Hybrid: structural for HTML/XML/spreadsheets, two chained Workers AI models for images, PDF-UA StructTree with raw-text fallback for PDF. One-directional, no writers back, Cloudflare-account-only; free for most conversions.
Free tier: The toMarkdown conversion itself is free for most format conversions; only image conversions that invoke Workers AI models can incur cost, and only once usage exceeds the Workers AI free tier allocation.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| toMarkdown document/text conversion | Free | per conversion |
| Image conversion (object detection/summarization via Workers AI models) | Billed at Workers AI model rates once usage exceeds the Workers AI free allocation | per Workers AI neuron/request |
Sources: developers.cloudflare.com
Amazon Textract — full detail, pricing, and citations
ML extraction of text, handwriting, forms, tables and structured data from scans/images via feature-specific APIs. (saas-api · GA, long-standing)
vs. documents.js: Input limited to JPEG/PNG/PDF/TIFF only — no office formats at all; per-feature JSON output, $0.0015–$0.07/page, no self-hosted option.
Free tier: New AWS customers get a 3-month free tier: 1,000 pages/mo for Detect Document Text; 100-1,000 pages/mo for the various Analyze Document features; 100 pages/mo for Analyze Expense/ID; 2,000 pages/mo for Analyze Lending.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Detect Document Text (OCR) - first 1M pages/mo | $0.0015 | per page |
| Detect Document Text (OCR) - after 1M pages/mo | $0.0006 | per page |
| Analyze Document - Forms - first 1M pages/mo | $0.05 | per page |
| Analyze Document - Tables - first 1M pages/mo | $0.015 | per page |
| Analyze Document - Queries - first 1M pages/mo | $0.015 | per page |
| Analyze Document - Signatures - first 1M pages/mo | $0.0035 | per page |
| Analyze Expense - first 1M pages/mo | $0.01 | per page |
| Analyze ID - first 100K pages/mo | $0.025 | per page |
| Analyze Lending - first 1M pages/mo | $0.07 | per page — Only supported document types are charged |
Sources: aws.amazon.com · aws.amazon.com
Amazon Bedrock Data Automation — full detail, pricing, and citations
Foundation-model multimodal pipeline (documents/images/video/audio) attaching plaintext/Markdown/HTML/CSV to every extracted entity. (saas-api · GA, newer than Textract)
vs. documents.js: Accepts DOCX only by converting to PDF first (breaks page mapping, unsupported synchronously); one-directional, separate per-unit pricing.
Free tier: None published; no free tier or trial allowance for Bedrock Data Automation was found on AWS's own pricing page or documentation.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Standard Output - Documents | $0.010 | per page |
| Standard Output - Images | $0.003 | per image |
| Standard Output - Audio | $0.006 | per minute |
| Standard Output - Video | $0.050 | per minute |
| Custom Output (blueprint schema) - Documents | $0.040 | per page |
| Custom Output (blueprint schema) - Images | $0.005 | per image — Extra charge if a blueprint defines more than 30 fields |
Sources: docs.aws.amazon.com · aws.amazon.com
Google Cloud Document AI — full detail, pricing, and citations
OCR, Layout parser, and prebuilt/custom field-extraction processors for documents. (saas-api · GA)
vs. documents.js: Widest native office ingestion of the four (via Layout parser) but outputs Document.proto JSON only, never Markdown or a regenerated file; $0.65–$30 per 1,000 pages.
Free tier: Google's own pricing page did not confirm a free-tier quota on this fetch; third-party sources mention one but it was not independently verified, so it is not asserted here.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Enterprise Document OCR - 1 to 5,000,000 pages/mo | $1.50 | per 1,000 pages |
| Enterprise Document OCR - above 5,000,000 pages/mo | $0.60 | per 1,000 pages |
| Layout Parser | $10 | per 1,000 pages — Flat rate, includes initial chunking |
| Form Parser - 1 to 1,000,000 pages/mo | $30 | per 1,000 pages |
| Form Parser - above 1,000,000 pages/mo | $20 | per 1,000 pages |
| Custom Extractor - 1 to 1,000,000 pages/mo | $30 | per 1,000 pages |
| Custom Extractor - above 1,000,000 pages/mo | $20 | per 1,000 pages |
Sources: cloud.google.com · cloud.google.com
Azure AI Document Intelligence — full detail, pricing, and citations
Read/Layout models plus prebuilt and custom-trainable extraction models for forms/PDFs/images. (saas-api · GA, v4.0 current)
vs. documents.js: Layout model can output structured Markdown, closest to Cloudflare on shape; uniquely offers a disconnected on-prem container, but behind a commitment plan as an opaque model image.
Free tier: F0 free tier: up to 500 pages per month across features, for evaluation/testing.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free (F0) | $0 | up to 500 pages per month |
| Standard (S0) - Read (OCR) | $1.50 | per 1,000 pages |
| Standard (S0) - Layout / all prebuilt models | $10 | per 1,000 pages |
| Standard (S0) - Custom Extraction | $30 | per 1,000 pages |
| Standard (S0) - Query Fields add-on | $10 | per 1,000 pages |
| Standard (S0) - High-res/formula/barcode add-ons | $6 | per 1,000 pages |
| Commitment tiers (volume) | as low as ~$0.53 per 1,000 pages at 8M pages/mo annual commitment | per 1,000 pages |
Sources: learn.microsoft.com · azure.microsoft.com
documents.js counterpart: The whole documents.js ecosystem: self-hosted, MIT, no-account, install-and-run packages doing bidirectional lossless conversion with zero network calls or per-document billing
This tier splits into two clusters that pressure documents.js in opposite ways. Cluster A — Adobe, PDF.co, Nutrient, ConvertAPI, ABBYY, Docparser, Parseur, plus the self-hostable office servers OnlyOffice and Collabora — is the established conversion/extraction market: mostly proprietary, cloud-only, metered per transaction, credit, or page. Nutrient is the sole proprietary vendor with a real self-hosted product (Document Engine, annual licence); OnlyOffice and Collabora are the only genuinely open, free-to-run structural converters found anywhere in the survey — but OnlyOffice Community is AGPLv3 with network-use copyleft and a 20-connection cap, and Collabora's free tier is explicitly scoped to testing/home use, with Business from €3/user/month; both are always-on LibreOffice-class servers, not embeddable libraries. Cluster B — LlamaParse, Reducto, Chunkr, Unstructured Platform, Affinda — is the LLM/RAG-era parsing wave: vision- and language-model-based, priced per page or credit, lossy-by-design because the target is clean chunks for retrieval, not a document you can write back out. Chunkr is the one Cluster B entry with a genuine open-source self-hosted path, and it's AGPL-3.0, GPU-oriented, model-weight-dependent. Across all fourteen, none is simultaneously permissively licensed, embeddable as a library, bidirectional, and runnable with no GPU, no account, and no Node-only dependency — exactly the intersection documents.js occupies. Two structural gaps this category exposes: OCR/ICR is a standard commercial line item everywhere here, and documents.js has none; and template-driven document generation from data (Adobe's Word-template generation, Docparser's/Parseur's template engines) is large, monetised demand documents.js doesn't address.
| Package / service | Direction | Approach | Deployment | Licence | Pricing model | Status |
|---|---|---|---|---|---|---|
| Adobe PDF Services API | Read + Write | Engine / SDK | SaaS | Proprietary, cloud-only | Freemium | Active |
| PDF.co | Read + Write | Engine / SDK | SaaS | Proprietary, cloud-only | Credit-based | Active |
| Nutrient (formerly PSPDFKit) | Read + Write | Engine / SDK | SaaS + Server | Proprietary; self-hosted Document Engine under annual licence | Credit-based | Active |
| ConvertAPI | Read + Write | Engine / SDK | SaaS | Proprietary, cloud-only | Credit-based | Active |
| ABBYY (FineReader Engine / Cloud OCR SDK / Vantage) | Read + Write | ML / OCR | SaaS + Server | Proprietary commercial, sales-quote only | Sales quote | Active |
| Docparser | Read only | Template | SaaS | Proprietary, cloud-only | Credit-based | Active |
| Parseur | Read only | Template | SaaS | Proprietary, cloud-only | Freemium | Active |
| OnlyOffice Docs (Document Server) | Read + Write | Engine / SDK | Server | Community: AGPLv3; Enterprise: proprietary | Freemium | Active |
| Collabora Online | Read + Write | Engine / SDK | Server | LibreOffice-derived (MPL/LGPL); Business/Enterprise commercial | Freemium | Active |
| LlamaCloud / LlamaParse | Read only | ML / OCR | SaaS + Server | Proprietary; credit-based | Credit-based | Active |
| Reducto | Read only | ML / OCR | SaaS + Server | Proprietary; pay-as-you-go | Credit-based | Active |
| Chunkr | Read only | ML / OCR | SaaS + Server | AGPL-3.0 (self-hosted); commercial (Cloud API) | Freemium | Active |
| Unstructured Platform | Read only | ML / OCR | SaaS + Server | Proprietary managed platform (built on Apache-2.0 library) | Freemium | Active |
| Affinda | Read only | ML / OCR | SaaS | Proprietary; usage-based | Sales quote | Active |
Adobe PDF Services API — full detail, pricing, and citations
PDF creation, export/conversion, combine, OCR, redaction, and document generation from Word templates + JSON. (saas-api · mature enterprise API)
vs. documents.js: Free tier covers 500 self-serve Document Transactions/month with no card required; beyond that, pricing is sales-quote only with nothing published (a widely-repeated ~$0.05/transaction figure is a third-party forum anecdote, not Adobe's own pricing) — versus documents.js's free, unlimited, local, no-account conversion with fully transparent (zero) cost.
Free tier: 500 free Document Transactions per month via self-serve API credentials, no credit card or commitment required.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free Tier | $0 | up to 500 Document Transactions/month — No credit card required; self-serve API credentials |
| Paid Plans | Custom (contact sales) | per Document Transaction, volume-based — No self-serve pricing published; a widely-cited ~$0.05/transaction figure with a 500,000/year minimum is a third-party forum anecdote, not Adobe's own published pricing |
| PDF Embed API | $0 | unlimited — Separate product (JS viewer only, not the processing API) |
Sources: developer.adobe.com · developer.adobe.com · developer.adobe.com
PDF.co — full detail, pricing, and citations
Cloud API for PDF/document manipulation: conversion, generation, OCR, extraction, split/merge. (saas-api · mature commercial API vendor)
vs. documents.js: Credit-metered per operation, $8.99–$270/month subscription tiers plus an Enterprise tier — no self-hosting path at all.
Free tier: A free trial is referenced on the pricing page but its exact duration/credit allowance is not specified there.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Basic | $8.99/mo | 16,500 credits/mo |
| Personal | $22.49/mo | 37,000 credits/mo |
| Business 1 | $44.99/mo | 80,500 credits/mo — Most popular |
| Business 2 | $89.99/mo | 159,850 credits/mo |
| Business 3 | $270.00/mo | 483,000 credits/mo |
| Enterprise | Custom | above 500,000 credits/mo |
Sources: pdf.co
Nutrient (formerly PSPDFKit) — full detail, pricing, and citations
Data Extraction, Processor (convert/merge/OCR/redact/watermark), Accessibility and Viewer APIs, plus a self-hostable Document Engine. (saas-api + self-hosted-server · mature, long-established PDF SDK vendor)
vs. documents.js: The only Cluster A vendor offering a genuine self-hosted deployment path — but still proprietary and commercially licensed, unlike documents.js's auditable, forkable MIT source.
Free tier: Every one of Nutrient's four APIs (Processor, Data Extraction, Accessibility, Viewer) has its own free tier with no credit card required.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Processor API - Free | $0/mo | 50 credits/mo |
| Processor API - Starter | $75/mo | 1,000 credits/mo |
| Processor API - Growth | $275/mo | 5,000 credits/mo |
| Processor API - Pro | $445/mo | 10,000 credits/mo |
| Data Extraction API - Free | $0/mo | 5,000 credits/mo |
| Data Extraction API - Starter | $59/mo | 25,000 credits/mo |
| Data Extraction API - Pro | $500/mo | 500,000 credits/mo |
| Viewer API - Free | $0/mo | 250 sessions/mo |
| Viewer API - Starter | $199/mo | 5,000 sessions/mo |
| Viewer API - Growth | $399/mo | 20,000 sessions/mo |
Sources: www.nutrient.io
ConvertAPI — full detail, pricing, and citations
Cloud REST API/SDK/no-code platform for broad document, image and PDF conversions. (saas-api · established mid-size vendor)
vs. documents.js: Per-conversion billing, $9–$99/month tiers plus 250 free conversions on signup — versus zero-cost, no-signup, unlimited local conversion.
Free tier: Free signup grants 250 conversions with no credit card required.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Developer | $9/mo | 1,000-12,000 conversions/mo, 200MB limit |
| Startup | $29/mo | 5,000-60,000 conversions/mo, 300MB limit |
| Growth | $99/mo | 15,000-180,000 conversions/mo, 500MB limit |
| Business | $249/mo | 50,000-600,000 conversions/mo, 1GB limit |
| Enterprise | Custom | 100,000+ conversions/mo, 2GB limit |
Sources: www.convertapi.com
ABBYY (FineReader Engine / Cloud OCR SDK / Vantage) — full detail, pricing, and citations
OCR/ICR SDK plus Vantage, a low-code Intelligent Document Processing platform with 150+ prebuilt extraction skills. (self-hosted-server + saas-api · mature, decades-old OCR/IDP vendor)
vs. documents.js: A fundamentally different problem — image-to-structured-data via ML — from documents.js's structural, lossless format-to-format conversion of already-digital documents.
Free tier: ABBYY Vantage offers a 45-day free trial (request-based, page-limited, not for production); no published free tier for FineReader Engine or Cloud OCR SDK.
Sources: www.abbyy.com · www.abbyy.com
Docparser — full detail, pricing, and citations
Extracts structured data (tables, fields, checkboxes) from PDF/Word/image documents via rule-based parsers. (saas-api · established extraction vendor)
vs. documents.js: Solves structured-data extraction (not format conversion), $32.50–$159/month subscriptions — a different problem from documents.js's structural round-tripping.
Free tier: 14-day free trial, no credit card required (no permanent free plan).
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Starter | $39/mo ($32.50/mo annual) | 100 credits/mo, up to 15 parsers |
| Professional | $74/mo ($61.50/mo annual) | 250 credits/mo, up to 50 parsers |
| Business | $159/mo ($133/mo annual) | 1,000 credits/mo, up to 500 parsers |
| Enterprise | Custom | custom credits/mo, unlimited parsers |
Sources: docparser.com
Parseur — full detail, pricing, and citations
Extracts structured data from emails, PDFs and invoices via AI or template parsing engines. (saas-api · established extraction vendor)
vs. documents.js: Same category as Docparser; free tier capped at 20 pages/month then paid tiers to 1M pages/month, cloud-only.
Free tier: Free plan forever: 20 pages/credits per month, 1 user, no credit card required.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Free | $0 | 20 pages/credits per month — Free forever |
| Micro | $49/mo | 100 pages/mo |
| Starter | $129/mo | 1,000 pages/mo |
| Premium | $269/mo | 3,000 pages/mo |
| Pro | $499/mo | 10,000 pages/mo |
| 100k | $3,699/mo | 100,000 pages/mo |
| 250k | $8,499/mo | 250,000 pages/mo |
| Enterprise | Custom | up to 10M pages/mo |
Sources: parseur.com
OnlyOffice Docs (Document Server) — full detail, pricing, and citations
Self-hostable collaborative office document server for docx/xlsx/pptx/odt/ods/odp conversion and editing. (self-hosted-server · mature, widely deployed (Nextcloud/ownCloud))
vs. documents.js: Genuinely self-hostable and open source, but AGPLv3's network-use copyleft requires publishing modifications and caps Community at 20 concurrent connections — versus MIT with no copyleft obligation.
Free tier: Community Edition is free and open source (AGPLv3), self-hosted, recommended for up to ~20 users, community/GitHub support only.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Community | Free | AGPLv3, self-hosted, up to ~20 users recommended |
| Enterprise | From $1,500/yr | 50 connections minimum — Cloud or on-prem; configurable support/add-ons |
| Developer | From $3,500/yr | 20 connections per server — For embedding into a branded service |
Sources: www.onlyoffice.com · www.onlyoffice.com
Collabora Online — full detail, pricing, and citations
Self-hostable collaborative document server built on LibreOffice (Writer/Calc/Impress/Draw). (self-hosted-server · mature, used by governments/enterprises)
vs. documents.js: A genuine self-hosted alternative, but ships as a heavyweight always-on LibreOffice server; free CODE tier is testing/home-use only, Business from €3/user/month.
Free tier: Development Edition is free for home use, testing, and startups (on-premise, unlimited, no SLA/support).
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Development Edition | Free | on-premise, home/testing/startups — No SLA/support |
| Business | €3/user/mo | up to 99 users — LTS, SLA, signed security updates |
| Enterprise | Custom | 100+ users, quote-based |
Sources: www.collaboraonline.com
LlamaCloud / LlamaParse — full detail, pricing, and citations
GenAI-native hosted parsing for RAG, 130+ input formats, four tiers trading cost/latency/accuracy. (saas-api (BYOC option) · widely adopted in LLM/RAG tooling)
vs. documents.js: Optimises for LLM-readability — one-way, lossy-by-design extraction into markdown/text — versus documents.js's lossless, type-safe, bidirectional round-tripping.
Free tier: No published free tier on the pricing page itself; docs suggest contacting LlamaParse for trial/demo access.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Fast parse | 1 credit/page | per page |
| Cost-effective parse | 3 credits/page | per page |
| Agentic parse | 10 credits/page | per page |
| Agentic Plus parse | 45 credits/page | per page |
| Cost-effective extract | 8 credits/page | per page |
| Agentic extract | 25 credits/page | per page |
| Agentic Plus extract | 60 credits/page | per page |
Sources: developers.llamaindex.ai
Reducto — full detail, pricing, and citations
Vision-model 'agentic document platform' — Parse/Extract/Split/Classify/Edit across PDFs, images, spreadsheets, documents. (saas-api (on-prem for Enterprise) · newer LLM-era, enterprise-focused)
vs. documents.js: ML/vision-model pricing-per-page ($7.50–$60 per 1,000 pages) aimed at LLM-ready extraction — lossy and one-directional, versus documents.js's deterministic, zero-cost codecs.
Free tier: New accounts start with $150 of free usage on the Standard pay-as-you-go tier.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Standard (pay-as-you-go) | $150 free usage, then per-operation rates | per 1,000 pages |
| Growth | Custom (volume discounts) | quote-based |
| Enterprise | Custom | quote-based, VPC/on-prem |
Sources: reducto.ai
Chunkr — full detail, pricing, and citations
Vision-language-model document intelligence converting PDFs/PPT/Word/images to structured HTML/Markdown chunks. (self-hosted-server + saas-api · newer (YC-backed), actively developed)
vs. documents.js: The one Cluster B entry that's genuinely open-source and self-hostable — but AGPL-3.0, GPU-oriented, model-weight-dependent, versus documents.js's permissive, no-GPU codecs.
Free tier: The hosted Cloud API gives 200 free credits to start; separately, the entire engine is open source (AGPL-3.0) and free to self-host indefinitely, using community models rather than the Cloud API's proprietary models.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Open source (self-hosted) | Free | AGPL-3.0, community models |
| Dev (Cloud API) | $375/mo | 25,000 credits included |
| Growth (Cloud API) | $750/mo | 75,000 credits included |
| Scale (Cloud API) | $2,000/mo | 250,000 credits included |
| Enterprise (Cloud API) | Custom | quote-based |
Repository health (as of 2 September 2026): 4.1k stars, 275 forks, 19 contributors, 0.0 commits/week avg (trailing 52wk), last release v2.2.1 (2025-07-31)
Sources: github.com · www.chunkr.ai
Unstructured Platform — full detail, pricing, and citations
Hosted end-to-end pipeline extracting/transforming/loading data from 65+ file types into vector databases, with an MCP interface. (saas-api (VPC/hybrid/bare-metal options) · enterprise-compliance certified (FedRAMP/HIPAA/GDPR/SOC2))
vs. documents.js: A full managed ETL pipeline for LLM/vector-store destinations, several layers above documents.js's scope as a direct-conversion library; no lossless round-trip guarantee.
Free tier: 10,000 pages processed free with no card required, all features included.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Let's Go (Free) | $0 | 10,000 pages included |
| Pay-As-You-Go | $0.015 | per page after free 10,000 |
| Business | Custom | quote-based |
Sources: unstructured.io · unstructured.io
Affinda — full detail, pricing, and citations
AI-powered Identity/Financial/Resume parsers extracting structured data from resumes, invoices, contracts. (saas-api · established, HR/finance-focused)
vs. documents.js: Narrow ML-driven vertical extraction (~$0.070 per file/page), fundamentally different in scope from documents.js's general-purpose format conversion.
Free tier: A two-week free trial with 200 credits included to test on real documents.
Pricing tiers:
| Tier | Price | Unit |
|---|---|---|
| Trial | Free | 2-week trial, 200 credits |
| Flexible usage (Monthly) | Custom quote | per page, billed monthly |
| Predictable scale (Annual) | Custom quote | per page, annual commitment |
Sources: www.affinda.com