Tools for publishing documentation are ones that make your materials publicly available in some fashion. In the modern documentation landscape, this almost always means tools that create websites, since that’s how software documentation is almost always delivered.
Taking an expansive view, there are many, many tools you could use to publish your documentation — essentially as many as there are different web hosting services. But there are a few crowd-favorite options that will meet the needs of the vast majority of projects. Unless you have very particular requirements, you probably only need to consider a few choices before finding one that will work for you.
ReadTheDocs
Most open-source Python projects publish their documentation using the ReadTheDocs.com service. ReadTheDocs has a free usage plan, supports any documentation tool (not just Python-based ones), and has good integration with continuous integration and deployment (CI/CD) services. This latter point is very valuable if, as recommended, you embrace the docs as code paradigm.
If you’re unsure whether ReadTheDocs would be a good fit for your project, consult its documentation to learn more.
Note that ReadTheDocs supports custom domains so that, with a relatively
small amount of effort, your docs can be accessed via a branded URL like
https://docs.mycoolproject.org/ even as they’re hosted by the third-party
service. These days, most publishing tools offer this feature.
Additional Resources
- ReadTheDocs: Tutorial
- ReadTheDocs: Sphinx support
- ReadTheDocs: MkDocs support
- ReadTheDocs: Custom authoring tool support
- ReadTheDocs: Git integration
- ReadTheDocs: Custom domain support
“Pages” Services
Another extremely popular option is a static website deployment service integrated with your code host, such as GitHub Pages or GitLab Pages. While there are numerous general-purpose static website hosting services, these integrated options are likely to offer the easiest route to convenient docs-as-code CI/CD integration.
Broadly speaking, these services offer the same core features as ReadTheDocs: support for any choice of authoring tool (but possibly more convenient support for certain preferred tools); CI/CD integration; custom domains; and so on.
Additional Resources
- Sphinx Docs: Deploying via GitHub Pages
- Sphinx Docs: Deploying via GitLab Pages
- GitHub Pages: Using custom workflows with GitHub Pages
- GitHub Pages: About custom domains and GitHub Pages
- GitLab Pages: Getting started
- GitLab Pages: Custom domains
Self-Hosting
We’ve highlighted the options above because they are very easy, very popular systems for publishing documentation. But if you’re unwilling or unable to rely on a third-party service to host your docs, it’s worth emphasizing that it is totally possible to host them yourself. Most authoring tools produce static web content as their output, and this is the easiest kind of content to self-host.
It’s beyond the scope of this resource to explore this topic in detail, but if you have access to local tech experts, they can almost surely help you out.
