Documentation Tools Comparison

This content was generated with the assistance of AI and should be verified against the official documentation of each tool before being relied on in production.

This section’s bibliography lists the reference material consulted while preparing these pages.

This page compares the four documentation tools of this section: Antora 3.2.1, Docusaurus 3.10.2, Zensical 0.0.72 and DocFX 2.81.0. Material for MkDocs 9.8.0 and MkDocs 1.6.1 appear as context for Zensical, which grew out of them. Every number was fetched on 2026-10-26 and every claim about a feature is explained, with an example, on the page of the tool named in the table. The approach follows the Programming Languages Comparative (issue #196) of this site: data kept in CSV files, charts generated from them, and a stated source and date for every figure. The comparison does not rank the tools, because the right one depends on what is being documented; the last sections turn the data into recommendations by purpose.

Feature matrix

The matrix lists what each tool does by itself, without extra plugins unless the cell says so. A dash means that the tool has no feature of that kind. The linked pages hold the details.

Feature Antora Docusaurus Zensical DocFX

Input formats

AsciiDoc (Asciidoctor.js)

Markdown and MDX (Markdown with React components)

Markdown (Python Markdown and its extensions); reads zensical.toml or mkdocs.yml

Markdown (DocFX Flavored Markdown), YAML, and .NET XML documentation comments from C# and Visual Basic

Multi-repository aggregation

Native: any number of Git repositories, branches and tags in one playbook

Single project; content from other repositories needs your own step before the build

Single project; no aggregation feature

One project per site; separate sites link through cross-reference maps

Versioning

Native: each branch or tag with a descriptor becomes a version of a component

Built in: the docs:version command copies the docs into numbered versions with a version dropdown

Transitional fork of mike only; native versioning is a roadmap item

None documented; build once per version and publish side by side

Internationalisation (i18n)

No built-in translation workflow documented

Built in: locales, translated folders, write-translations, per-locale builds

Interface in more than 60 languages; content translation is a roadmap item

No translation workflow documented; only a companion tool for multi-language folders is listed

API reference

None of its own; the Collector extension can run an external generator before the build

None of its own; TypeDoc and OpenAPI plugins exist

Python docstrings through mkdocstrings

Generated from .NET assemblies and XML comments; REST pages from Swagger 2.0 (OpenAPI 3 is not supported in 2.81.0)

Search

Optional Lunr extension (alpha); Pagefind and Algolia DocSearch as alternatives

Algolia DocSearch or a local search plugin, configured by you

Built-in client-side search

Client-side search, switched on by a global metadata setting

Diagrams

Mermaid, Kroki and others through Asciidoctor extensions

Mermaid through the theme

Mermaid through SuperFences

Mermaid and PlantUML

Math

MathJax through an Asciidoctor extension

KaTeX through the remark and rehype plugins

MathJax or KaTeX through arithmatex

Markdown math syntax

Theming model

A UI bundle (Handlebars templates, CSS, JavaScript) referenced from the playbook

A React theme whose components are replaced one by one (swizzling)

Template overrides, custom CSS and JavaScript, variants

Templates in layers: built-in templates plus your own folders

PDF output

Assembler extension (@antora/pdf-extension)

-

- (listed on the roadmap)

docfx pdf with the modern template, since 2.73.0

Blog

-

Built in, with tags, authors and feeds

Native blog and tags

-

Build runtime

Node.js 20 or newer

Node.js 20 or newer

Python 3.11 or newer (the build core ships inside the wheel)

.NET SDK 8 or newer

Licence

MPL-2.0

MIT

MIT

MIT

Governance

Open source project hosted on GitLab

Developed under the Meta open source umbrella; code on GitHub

Built by the team behind Material for MkDocs, with commercial products (Zensical Studio, Zensical Spark) around the core

Community-driven under the .NET Foundation; Microsoft Learn no longer uses it

Maintenance status

3.2.1 released 2026-10-01

3.10 is the last 3.x minor; version 4 exists only as canary builds

Alpha; 0.1.0 planned for 2026-11-05

2.81.0 released 2026-09-25; no support contract

Details for each column: Antora, Docusaurus, Zensical and DocFX. Two pages cover the cells that most often decide a choice: Antora content sources for aggregation and Docusaurus versioning.

Material for MkDocs and MkDocs share Zensical’s input format and configuration style. Material for MkDocs entered maintenance mode on 2025-11-05 with fixes promised until 2027-05-05, and MkDocs has had no stable release since 1.6.1 on 2024-08-30. The page Migrating from Material for MkDocs covers the move.

Strengths and weaknesses

Tool Strengths Weaknesses Where it is explained

Antora

Native multi-repository sites and versions from Git; AsciiDoc with resource-ID cross references, partials and examples; UI separated from content; PDF export through an extension

Smallest ecosystem of the four; several concepts (playbook, sources, UI bundle) before the first page; no API reference generator; search is an alpha extension

Antora overview, search

Docusaurus

Largest ecosystem; MDX and React components; built-in versioning, i18n and blog; deep customisation through swizzling

One project per site; no API generator of its own; search and PDF are not built in; the 3.x line has reached its last minor

Docusaurus overview, versioning

Zensical

Fast builds on a small site (0.27 to 0.31 seconds); reads existing mkdocs.yml; built-in search; native blog; mkdocstrings for Python API docs

Alpha software; no native versioning or content translation yet; a subset of the MkDocs plugins; no PDF

Zensical overview, roadmap

DocFX

API reference generated straight from .NET XML comments; Swagger 2.0 REST pages; PDF output; .NET tool in the build

Community-maintained with several hundred open issues; no versions or translations documented; OpenAPI 3 is not supported in 2.81.0; Markdown flavour specific to DocFX

DocFX overview, REST API docs

The strengths and weaknesses come from the official documentation of each tool and from the checks run for the pages of this section; the official sources are listed under References. Three observations deserve a longer explanation.

  • Aggregation and versions are Antora’s reason to exist. Antora builds a site from many repositories, and each branch or tag becomes a version. The other three tools can reach a similar result only by assembling the content first (Docusaurus), by publishing separate sites (DocFX) or by waiting for the roadmap (Zensical). This site uses Antora for that reason: it combines the documentation of about a dozen other repositories, as described in Case study: this site.

  • Docusaurus trades aggregation for reach. Its stars and downloads are an order of magnitude above Antora’s and DocFX’s, and it is ahead of both on the other adoption metrics below, and it is the only one of the four with versioning, i18n and a blog all built in. The price is that every site is a React application, so a documentation team takes on a JavaScript toolchain.

  • Zensical and DocFX answer different questions. Zensical is a Markdown site generator that is replacing Material for MkDocs; DocFX turns .NET code into an API reference. They rarely compete for the same project, because the input they exist for, Markdown prose or .NET code, differs.

Metrics

All metrics below were fetched on 2026-10-26. The data and the way it was fetched are in scripts/documentation-tools-charts/data/ (the NOTES.md file there lists every source), and the charts are regenerated with npm run charts:docs-tools.

Adoption snapshot

Tool Stars Forks Latest stable release Package downloads Stack Overflow questions

Docusaurus

66,588

10,099

3.10.2 (2026-07-10)

900,103 npm downloads of @docusaurus/core in the last 7 days

515

Antora (GitLab)

599

395

3.2.1 (2026-10-01)

23,818 npm downloads of @antora/cli in the last 7 days

31

Zensical

6,004

137

0.0.72 (2026-10-23)

560,137 PyPI downloads in the last 7 days

n/a (no tag)

DocFX

4,444

891

2.81.0 (2026-09-25)

6,554,517 NuGet downloads, cumulative since publication (no weekly figure)

129

Material for MkDocs

27,587

4,152

9.8.0 (2026-10-24)

3,617,790 PyPI downloads in the last 7 days

42

MkDocs

22,519

2,661

1.6.1 (2024-08-30)

4,078,127 PyPI downloads in the last 7 days

304

Sources: the GitHub REST API (stars and forks), the GitLab REST API (Antora), the npm downloads API, pypistats.org, the NuGet search API and the Stack Exchange API, all queried on 2026-10-26. Stack Overflow counts are the questions carrying the tags docusaurus, antora, docfx, mkdocs-material and mkdocs.

Community health

Tool Contributors Open issues Closed issues Closed share Stable releases in the last 12 months

Docusaurus

457

277

3,211

92.1%

3

Antora (GitLab)

37

118

1,120

90.5%

3

Zensical

19

3

537

99.4%

69

DocFX

255

403

2,132

84.1%

4

Material for MkDocs

311

1

2,669

100.0%

10

MkDocs

230

120

2,003

94.3%

0

Contributors are GitHub contributors, or committers for Antora on GitLab. Issue counts exclude pull requests. The count of stable releases includes patch releases and was taken over the 365 days before the snapshot. Adopters could be counted only for Docusaurus: about 274 entries in the data file of its official showcase, which is self-reported and curated. Google Trends interest was not queried, because the service has no public interface and its series are relative, so the page does not state a trend value.

Caveats

  • Downloads are not comparable across ecosystems. npm, PyPI and NuGet are inflated differently by continuous integration systems, mirrors and caches, so compare the series of one ecosystem with each other and treat the absolute values between ecosystems as unrelated.

  • Antora is on GitLab and often runs in Docker. GitLab stars and forks do not compare with GitHub’s, and downloads of a container image are not counted by npm.

  • The DocFX figure is cumulative. NuGet only reports a total since the first publication, so DocFX has no weekly value.

  • Zensical is new and partly migration traffic. It launched publicly on 2025-11-05, and part of its downloads are Material for MkDocs users trying a migration.

  • Stars over time are missing. On the snapshot date the GitHub stargazers interface did not return star dates, so no star history is charted.

  • Counts of stable releases only include versions of the form x.y.z, so the two-number MkDocs versions of 2014 and the Docusaurus pre-releases before 2.0.0 are not counted.

Charts

The charts are generated by scripts/documentation-tools-charts/generate-charts.mjs, which reuses the renderers of the Programming Languages Comparative. Each has axis labels with units, a legend and its own white background, so it reads the same on a light or a dark page. Every caption names its source and date; the Bibliography of the Documentation Tools overview lists the services.

Current adoption

Bar chart of repository stars for six documentation tools

Figure 1: repository stars on 2026-10-26. Source: GitHub REST API and, for Antora, GitLab REST API. Docusaurus has about 2.4 times the stars of Material for MkDocs, the next one, and about 110 times the stars of Antora.

Bar chart of package downloads in the last seven days

Figure 2: downloads in the last 7 days on 2026-10-26, npm for Docusaurus and Antora and PyPI for the Python tools. Source: npm downloads API and pypistats.org. DocFX is n/a because NuGet only reports a cumulative total. Compare bars inside one ecosystem only.

Bar chart of Stack Overflow questions per tag

Figure 3: Stack Overflow questions per tool tag on 2026-10-26. Source: Stack Exchange API. Zensical has no tag yet and is shown as n/a, not zero.

Downloads over time

Line chart of monthly npm downloads of Docusaurus and Antora

Figure 4: monthly npm downloads of @docusaurus/core and @antora/cli, from the first publication of each package (2019-04 and 2018-01) to September 2026. Source: npm downloads range API, retrieved 2026-10-26. Docusaurus rose from about 1.0 million in September 2023 to 2.2 million in September 2025 and 6.0 million in September 2026; Antora rose from 83,279 to 141,185 and 171,344 in the same months. The sharp Docusaurus growth also reflects build systems that install it on every run.

Line chart of weekly PyPI downloads of MkDocs Material for MkDocs and Zensical

Figure 5: weekly PyPI downloads (without mirrors) of mkdocs, mkdocs-material and zensical for the complete weeks of the 180 days before 2026-10-26. Source: pypistats.org. Zensical grew from 169,134 in the week of 2026-04-13 to 560,137 in the week of 2026-10-19, about 3.3 times; Material for MkDocs moved from 3,869,701 to 3,617,790 and MkDocs from 3,800,310 to 4,078,127 over the same weeks.

Release cadence

Line chart of cumulative stable releases of six documentation tools

Figure 6: cumulative number of stable releases (patch releases included) over time. Sources: npm registry (Docusaurus and Antora), PyPI (Zensical, Material for MkDocs and MkDocs) and GitHub releases (DocFX), retrieved 2026-10-26. Zensical published 72 stable releases in under two years, 69 of them in the last 12 months; Material for MkDocs published 420 since 2016; Docusaurus and Antora publish a few releases a year.

Scores on ten axes

The radar charts condense the comparison into ten axes scored from 0 to 10, higher being better. Two axes are computed from the data of this page: Ecosystem comes from the stars (100 stars scores 0 and 100,000 stars scores 10, on a logarithmic scale) and Maintenance health averages the recency of the latest release, the number of stable releases in the last 12 months and the share of closed issues. The other eight are editorial scores with the basis for each one written next to it in data/radar-scores.csv: 2 means possible only by a custom script, 4 possible with extra documented work, 6 supported with limits, 8 good built-in support and 10 the defining strength of the tool. Build speed is the weakest axis: Zensical and Docusaurus have cold-build timings, but from scratch sites of different sizes, so they are not directly comparable (see Docusaurus Faster), while Antora and DocFX were not timed and sit at the middle value 5. The scores are a way to read the matrix quickly, not a ranking.

Axis Antora Docusaurus Zensical DocFX

Ease of setup

4

8

8

6

Authoring power

9

9

7

6

Multi-repo aggregation

10

2

2

4

Versioning

10

8

3

2

API reference

2

4

5

9

Customisation

6

10

6

7

Search

6

6

8

6

Ecosystem (computed)

2.6

9.4

5.9

5.5

Build speed

5

6

9

5

Maintenance health (computed)

6.9

6.1

9.9

6.9

Radar chart of scores on ten axes for Antora Docusaurus Zensical and DocFX

Figure 7: the four tools on ten axes. Scores are editorial except Ecosystem and Maintenance health, which were computed from the metrics of 2026-10-26 (sources as in the figures above, rubric in data/NOTES.md).

Radar chart of Antora scores

Figure 8: Antora. The profile is lopsided: the top scores are aggregation and versioning, the lowest are API reference and ecosystem.

Radar chart of Docusaurus scores

Figure 9: Docusaurus. The largest ecosystem and the deepest customisation, with aggregation and API reference as the gaps.

Radar chart of Zensical scores

Figure 10: Zensical. Fast builds and a high maintenance score from frequent releases and a high closed share, against missing versioning and aggregation. The maintenance score does not account for the alpha status.

Radar chart of DocFX scores

Figure 11: DocFX. API reference generation from .NET code is the standout; versioning and aggregation are the gaps.

Decision flowchart

The flowchart follows the recommendations below. Start from the main thing the documentation must do.

flowchart TD A["What must the documentation do?"] --> B{"Is it an API reference
for a .NET library?"} B -- yes --> DFX["DocFX"] B -- no --> C{"Must one site combine several
repositories or many versions
from Git?"} C -- yes --> ANT["Antora"] C -- no --> D{"Is the content Markdown
and the project Python-first?"} D -- yes --> E{"Can you accept an alpha tool
or stay on Material for MkDocs?"} E -- "accept alpha" --> ZEN["Zensical"] E -- "stay for now" --> MAT["Material for MkDocs
(maintenance mode)"] D -- no --> F{"Do you need a blog, i18n,
React components or built-in
versions?"} F -- yes --> DOC["Docusaurus"] F -- no --> G{"Is the team comfortable
with AsciiDoc?"} G -- yes --> ANT G -- no --> DOC

Figure 12: decision flowchart for choosing a documentation tool. It is a starting point; check the metrics and caveats above before deciding.

Recommendations by purpose

The data snapshot date for every figure below is 2026-10-26.

  • Product documentation spanning many repositories and versions: Antora. It scores 10 on aggregation and on versioning, and no other tool of the four reaches 8 on both (Docusaurus scores 2 and 8, Zensical 2 and 3, DocFX 4 and 2). The cost is the smallest ecosystem: 599 GitLab stars, about 24,000 npm downloads a week and 31 Stack Overflow questions, so expect to read the documentation rather than search for answers, and to maintain the UI bundle. It needs the extra work described in Antora UI bundles.

  • Open source project site with a blog, translations and versioned docs: Docusaurus. It has the most adopters in the data (66,588 stars, 900,103 npm downloads a week, 515 Stack Overflow questions, 457 contributors), and it is the only tool that includes blog, i18n and versioning together. Plan for its single-project model and for the move from 3.10 to 4, as explained in Docusaurus Faster and v4 readiness.

  • Python or Markdown-first projects: Zensical, or Material for MkDocs for now. Zensical grew about 3.3 times in weekly PyPI downloads over six months and published 69 releases in the last year, which supports betting on it, and it reads the existing mkdocs.yml. It is still alpha at 0.0.72 and lacks native versioning, so a project that needs production stability today can stay on Material for MkDocs, whose maintenance mode promises fixes until 2027-05-05, and plan the move after the 0.1.0 line planned for 2026-11-05.

  • .NET libraries that need an API reference: DocFX. It scores 9 on API reference, and the 6.55 million cumulative NuGet downloads show that it is the default .NET tool. Check the 403 open issues and the lack of versions and translations first, and pin the version in continuous integration. OpenAPI 3 files are not supported in 2.81.0.

  • Teams currently on Material for MkDocs: plan, do not rush. The project is in maintenance mode, MkDocs has no stable release since 2024-08-30 and Zensical is the successor from the same team. Follow Migrating from Material for MkDocs and the Zensical roadmap, and rerun the build with zensical build on a branch before committing to the change.

The chart tooling is the one of the Programming Languages Comparative (issue #196). The Antora site search page covers the Lunr, Pagefind and Algolia options that issue #255 discusses for this site.