mkdocs is a free, open source documentation & knowledge base project written in Python and released under BSD-2-Clause. It has 22,497 GitHub stars, 2,658 forks and 192 open issues, and was last pushed 12 months ago. On this registry it ranks #8 of 96 tracked projects in Documentation & Knowledge Base, with 5 head-to-head comparisons available.

What is mkdocs?

MkDocs is a static site generator for Python developers and technical writers who want project documentation written in Markdown and served as plain HTML files.

What it is

MkDocs is a static site generator written in Python, released under the BSD-2-Clause licence, and geared specifically towards building project documentation. Documentation source files are written in Markdown, and the whole site is configured with a single YAML configuration file. It is designed to be easy to use and can be extended with third-party themes, plugins, and Markdown extensions, and its output is static HTML that can be published anywhere static files are served.

The concrete problem MkDocs solves is turning scattered Markdown files into a navigable, publishable documentation site without requiring a bespoke build system. It replaces hand-rolled HTML generation and server-rendered documentation stacks with a single command that compiles Markdown into static files, keeping the entire site portable across hosting environments.

Key capabilities

  • Build static HTML files from Markdown files, configured through a single YAML configuration file.
  • Use plugins and Markdown extensions to enhance MkDocs beyond its base behaviour.
  • Use the built-in themes, third-party themes, or create your own theme.
  • Publish documentation anywhere that static files can be served, with no application runtime required.
  • Consult a maintained catalog of third-party plugins, themes, and recipes at github.com/mkdocs/catalog.
  • Report bugs and request features through GitHub Issues, with high-level discussions held in GitHub Discussions.
  • Track project health through published CI and coverage badges wired to GitHub Actions (ci.yml) and Codecov.

Who uses it and how

  • Python projects that keep their documentation alongside their source code and publish the generated static site to any file host.
  • Development teams that write documentation in Markdown and rely on a single YAML file as the site's whole configuration surface.
  • Contributors extending documentation sites with third-party plugins, themes, and Markdown extensions from the community catalog.
  • Community members who answer questions and troubleshoot in the Gitter/Matrix chat room while directing core feature problems to GitHub Issues and Discussions.

Getting started

MkDocs is installed from PyPI as the mkdocs package, and full introductory tutorial and user guide documentation is available at https://www.mkdocs.org.

How it compares

MkDocs stands alongside other static site generators and documentation tooling, but it states a narrow purpose: project documentation written in Markdown rather than general-purpose site building. Its extension points are organised through third-party plugins, themes, and Markdown extensions, with a dedicated catalog for finding them, and support for those extensions is explicitly deferred to their own projects rather than to MkDocs core.

When to use it — and when not

Because the output is static HTML, a self-hoster needs no database, storage layer, or SMTP service — only somewhere to serve the generated files. It is a poor fit for teams needing server-rendered or dynamic documentation, and the project carries 192 open issues, so some feature requests and bug reports remain unresolved; note also that support for third-party themes, plugins, and extensions falls to their respective projects, not to MkDocs core.

project readme (upstream, from github) — read inline

MkDocs

Project documentation with Markdown

PyPI Version Build Status Coverage Status

MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file. It is designed to be easy to use and can be extended with third-party themes, plugins, and Markdown extensions.

Please see the Documentation for an introductory tutorial and a full user guide.

Features

  • Build static HTML files from Markdown files.
  • Use Plugins and Markdown Extensions to enhance MkDocs.
  • Use the built-in themes, third party themes or create your own.
  • Publish your documentation anywhere that static files can be served.
  • Much more!

Support

If you need help with MkDocs, do not hesitate to get in contact with us!

  • For questions and high-level discussions, use Discussions on GitHub.
    • For small questions, a good alternative is the Chat room on Gitter/Matrix.
  • To report a bug or make a feature request, open an Issue on GitHub.

Please note that we may only provide support for problems/questions regarding core features of MkDocs. Any questions or bug reports about features of third-party themes, plugins, extensions or similar should be made to their respective projects.
But, such questions are not banned from the chat room.

Make sure to stick around to answer some questions as well!

Links

Contributing to MkDocs

The MkDocs project welcomes, and depends on, contributions from developers and users in the open source community. Please see the Contributing Guide for information on how you can help.

Code of Conduct

Everyone interacting in the MkDocs project's codebases, issue trackers, and discussion forums is expected to follow the PyPA Code of Conduct.

License

BSD-2-Clause

Frequently asked questions

Is mkdocs free to use?

mkdocs is open source under the BSD-2-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mkdocs do?

Project documentation with Markdown.

What is mkdocs written in?

mkdocs is primarily written in Python. Its source is publicly available at https://github.com/mkdocs/mkdocs, and it has 22,497 GitHub stars.