18 Software Documentation Tools that Do The Hard Work For You
Blog: The Process Street Blog

đ˘
Bonus material: Git Workflow Checklist to simplify & streamline version management

- What is software documentation?
- Software documentation hosting options
- Writing tools for software documentation
- Final words on software documentation
What is software documentation?
âDocumentation in software engineering is the umbrella term that encompasses all written documents and materials dealing with a software productâs development and useâ â Prototype.io, Software Documentation Types and Best PracticesAll pieces of software should have some form of documentation that explains, in detail, what the product is, how it works, and why it works that way.
âIf it isnât documented, it doesnât existâ â Sitepoint, A Guide to Writing Your First Software DocumentationAs a developer, your main aim is to write the best code you possibly can. You want your code to be best in class, easy to read, easy to use, and you want great things to happen as a result of it. Right? But without documenting what youâve done and why youâve done it:
- No one else can use your code but you
- You canât update or improve it
Software documentation hosting options
Itâs no good having just a bunch of text files living on your computer. They need to be accessible by developers and users, which youâre most likely going to do by hosting the docs on the internet since it isnât the 1980s.Process Street (for internal use)
For training new developers and keeping your documentation living all in the same place, Process Street is a solid choice for software documentation. First, you could create a process for writing your documentation, to make sure you capture all the right details and make it as useful as possible. Using the following easy-to-use features, you can then write up and store your documentation in one single place:Storing your documentation within Process Street means it can be accessed by everyone in the company. You can share it with others, send it for approval, set reminders to review it, and update it easily. Check it out:
If it can be documented, it can be documented in Process Street.
Sign up for a free trial here and give it a go.Read The Docs
Itâs remarkable that Read The Docs is free when you see all that it can do. Similar to GitHub, you can create as much open-source material as you like that gets openly indexed on the site, but itâs going to cost you if you want to make the docs private and internal to your company. For our purposes, itâs likely youâre going to be alright with having the docs readily available for users on the web.
The reason Read The Docs is so good is that you can effortlessly import documentation from any version control system including Git, Mercurial, Subversion, and Bazaar. It also supports webhooks so the docs get built automatically whenever you commit code.
Check their Getting Started guide to get a feel for how it works and how your docs would behave when hosted there.GitHub (& GitHub Pages)
If youâre using GitHub to manage version control for your software, you have, at the bare minimum, a README.MD file in the repository. To use GitHub for documenting your software, like millions of others have done in the past, just fill that README in with markdown. A great example is sferikâs t repository, screenshotted here:
If you want more than just one sheet of formatted text, you can take advantage of GitHubâs Pages tool (you get one free webpage + hosting with each GitHub account, and you can even route a custom domain to it). Pages even has great looking default themes that make your documentation look professional.
Above is atom.io documentation for Electron hosted on GitHub. Itâs a smart choice because it automatically works with GitHubâs version control, just like the rest of your software. See the siteâs repository here.Dropbox Paper (for internal use)
For internal software documentation use, Dropbox Paper is an excellent choice. Like its predecessor Hackpad, you can use it to create a private wiki for employees. You can link documents together, insert code blocks, images and page jumps, just as youâd demand from any documentation tool.
As you can see from the comments on the right, you can also use it to go through approval processes and collaborate over the creation of documentation. Overall, itâs a great tool for internally developing and creating documentation, perhaps with the view to publicize it later, or just keep it for internal use.Atlassian REST API Browser (for API use)
Atlassianâs REST API Browser (RAB) is included in JIRA Server, Confluence Server and Stash instances by default. Itâs built for discovering APIs available for use in JIRA/Confluence environments, and also a place to host your documentation. If, of course, your API fits the bill.
Document your API using this tool to give your JIRA/Confluence compatible API more exposure. Check here for Atlassianâs documentation on doing that.Tettra (for internal use)

Apiary (for API use)
As well as being a place where bees live, Apiary is a dedicated host for API documentation. Write in markdown, add mock API calls and Apiary collates that into something like you see below:
Anyone can test the API without having to go into the app or actually program a call, which makes it a super accessible way to share your API, document it in-depth, and boast about what it can do.
Weâve discussed where to store your software documentation, now itâs time to look at how to write it.Writing tools for software documentation
Software documentation is often written in markdown to allow for hyperlinks and formatting while keeping it plain text so it can live alongside the code files in version control. That means that a lot of my choices for writing tools are simple markdown editors that make the writing experience enjoyable. Additionally, there are also a couple of very effective non-mparkdown solutions thrown in there.MarkdownPad (Windows)
With a free and premium version â both with a ton of great features â MarkdownPad is the most popular markdown editor for Windows. Itâs optimized for blog posts, websites, articles, READMEs, and, of course, software documentation.
You can get MarkdownPad for free, or get the premium version for $14.95.iA Writer (Mac)
iA Writer is a simple, beautiful markdown editor with a library feature meaning you can easily reference back other documents in the sidebar. Itâs missing internal links between documents like youâd expect there to be in software docs, but you can always do a pass on those when itâs in its final form (that is, if itâs going to end up on the internet in a site). If you write your whole documentation in one, broken-up page, you can use page jump anchors to help users navigate.
ProProfs Knowledge Base
ProProfs Knowledge Base is a fantastic little tool for all stages of document creation; from writing and editing, to customizing, setting workflows, and publishing. You can add multimedia, import existing content from word docs, PDF, or PPTs, save multiple versions of the document, and restore them when required.
SimpleMDE (browser)
While you can technically write markdown in any text editor because it is a way to format plain text, not strictly a âtoolâ, it wonât surprise you that itâs also possible in your browser! SimpleMDE is a both a functional markdown editor built on JavaScript and an open-source project to learn from and adapt for your own use, if necessary.
SimpleMDE is 100% free! Get the source on GitHub here.reStructuredText editors
Markdown is one of the two most commonly used languages for writing software documentation, but thereâs another weâve not looked at so far, and thatâs reStructuredText. Itâs very similar to markdown, but worth learning for software documentation purposes. Docutils, the creator of reStructuredText, has put together a list of reStructuredText editors here, which includes:- A plugin for vim
- Emacs (in rst mode)
- A plugin for Eclipse
- A plugin for TextWrangler/BBEdit
- NoTex (for browsers)
Tools to automatically generate documentation from source code
Thereâs nothing like the human touch when it comes to documentation (itâs clear in the docs of Slack and Giphy, to name a couple). However, as a starting point (especially for huge source libraries), itâs best to generate the skeletal documentation automatically. This work by analyzing the sourceâs functions and comments, and there are a few different options depending on language:Before you go ahead and rely solely on automatic generation, Iâd suggest reading this StackExchange thread which weighs the pros and cons.
Final words on software documentation
There are plenty of fancy solutions, quick fixes and tools that are (quite honestly) almost identical. What matters in the end is that What matters most, in the end, is that: a) you write software documentation for every piece of software you build b) you write it comprehensively and host it somewhere that the user can access I mentioned earlier that I had a few more development process templates that you might be keen to check out? Well, here they areâŚProcess Street development process templates
Before I give you these templates, let me explain what Process Street is a bit more. So we know Process Street is super-powered checklists. Itâs a piece of software that will help you create and manage processes. But wait, thereâs more to Process Street than that! Watch this intro video to find out what I mean:So you see, not only can you create a development process template and run individual checklists from this every time you need to complete the development process, but you can customize it using these extra features- Stop tasks
- Dynamic due dates
- Task permissions
- Conditional logic
- Approval tasks
- Embed widget
- Role assignments

