Documentation is one of the critical part of your product with code and marketing. Too often this aspect is neglected even if it is a crucial for your company: in order to share the knowledge, but also for your customer to understand your product.

Tech companies should treat documentation like tests. Before writing any lines of code you should describe what you want to achieve. To do so, a plain text document (formated as markdown for example) allows you to apply the same rules and standards as you do with code: Pull Requests and Reviews.

The pull-request flow of GitHub is fantastic, it allows you to see every modified/add/removed lines in raw format but also in rich diff:

GitHub rich diff

More than diff, members of your organization can comment every single lines if they want. It allows you to produce document with a very high standard.

Moreover with this kind of documentation you will never get locked-out, you know exactly how the document is stored, just forget about buggy and time consuming migration script.

Last but not least with static file generator, you have a total control on the output. It means that if you want to have custom pages or features (like JS scripts) it is very easy.

If you use GitHub, you can render your documentation automatically for free using jekyll (via github pages) for public and private use.