MkDocs — especially with the Material theme — is the de-facto standard for project documentation in the Python world, and deservedly so: clean output, client-side search that works on any static host, and a huge plugin ecosystem.

Its model is a book: chapters, a hand-maintained navigation tree in mkdocs.yml, one project. Specifications don’t behave like chapters. They are independent documents with their own statuses, authors, and lifecycles, added by many people over years. Dossiers builds the index automatically from each document’s frontmatter — there is no navigation file to edit, rebase, or forget.

At a glance

Dossiers MkDocs (Material)
Monthly cost Free — MIT-licensed CLI Free (open source); formerly-paid Insiders features are free for everyone since late 2025
Open source Yes — MIT Yes — BSD (MkDocs), MIT (Material)
Where content lives Markdown files in your Git repository Markdown files in your Git repository
Authoring Any editor or IDE; plain Markdown with YAML frontmatter Any editor; Markdown plus a hand-maintained mkdocs.yml navigation
Review & approval Pull requests — drafts appear automatically next to published specs Bring your own — e.g. deploy previews from your hosting provider
Version history Full Git history of every document Full Git history
Full-text search Full-text search in the hosted service; static builds use browser search Client-side search built in — works even on static hosting
Access control Google Workspace domain or GitHub org (hosted); static sites can sit behind your own auth None — output is public unless you add your own auth layer
Self-hosting Yes — static output hosts anywhere, or run the CLI server Yes — static output
Lock-in None — plain Markdown files stay in your repo Low — Markdown, though Material admonitions and plugins are ecosystem-specific

Prices are rounded list prices as of July 2026 and change often — always check the vendor’s pricing page. Dossiers hosted-service pricing will be announced at launch.

Which one is for you?

Choose MkDocs (Material) if…

  • You're documenting one product or library as a coherent, ordered manual
  • You want the Material ecosystem: plugins, admonitions, versioned docs
  • You need client-side search on purely static hosting
  • Your team already lives in the Python toolchain

Choose Dossiers if…

  • Your documents are independent peers, not chapters in a manual
  • You don't want to maintain navigation in mkdocs.yml by hand
  • Draft specs should appear automatically from open pull requests
  • You want a single binary instead of a Python environment

The bottom line

For a product manual with a curated reading order, MkDocs with Material is excellent and hard to beat. For a growing collection of independent specs, policies, and ADRs, Dossiers removes the navigation file, the theme setup, and the plugin curation — and adds status metadata and PR drafts that MkDocs has no concept of.

Frequently asked questions

MkDocs has search on static hosting — does Dossiers?

Static Dossiers builds rely on the browser’s find-in-page; full-text search across all documents comes with the hosted service or the CLI’s server mode. If offline client-side search on a static host is a hard requirement, Material for MkDocs has the edge here.

Can I migrate from MkDocs to Dossiers?

Yes — your content is already Markdown in Git. Move the files, add frontmatter for status and authors where useful, and delete mkdocs.yml. Material-specific admonition syntax may need adjusting.

See it with your own specs

Point Dossiers at a folder of Markdown files — you'll have a site before the kettle boils.