I’ve got little skin in this game, but wanted to point out a few things.
The “docs-as-code” movement has been growing in popularity over the past several years. Most new startup FOSS projects don’t use wikis. If they do, they use the built-in wiki in the repo service they’re using. And even then, they stop if it becomes more than a few pages and switch to a docs repo built on Markdown or RST formatted text files, using CI to deploy to a static site.
There are probably lots of articles about this, but one that came to my mind from the “corporate world” was The Biggest Disadvantages of Using Corporate Wikis | Bloomfire and is just as applicable to FOSS communities. Such reasons that wikis have fallen out of favor for documentation, have led to services like ReadTheDocs becoming just as ubiquitous as GitHub, etc.
Also in open source projects, it’s important to think critically (and realistically!) about documentation. Especially how it will be maintained and by whom. Spoiler alert: Users never come in meaningful numbers to maintain and edit documentation beyond occasional typo fixes. This is another reason why “docs as code” has become the dominant strategy: The workflow fits in well with existing development practices – even if there are “dedicated resources” doing documentation, the process of code review and releases alongside software releases “just makes sense” for development projects. The Write The Docs community of documentarians have a good guide on this here: A beginner’s guide to writing documentation — Write the Docs.
Some examples of well-planned static site documentation for FOSS projects:
To be accurate: The tools already available to the LH community currently support static docs sites through the GitHub/GitLab Pages feature. It is not necessary per se to roll out a separate server and/or tools to accomplish documentation that using tools that are generally accepted by the FOSS world as easy to write & easy to maintain. Which reminds me:
The above behavior is not the normal workflow for maintenance of most documentation static sites, unless someone is wanting to do a massive structural rework of the doc site. Each page offers a link to its repository home, and then the user could propose edits right in the browser. A real-world example:
- Go to https://kotlinlang.org/docs/reference/. Find something you want to change.
- Click the Edit Page button.
- Sign in to GitHub if necessary, create an account if need be.
- Click the big green Fork this repository and propose changes button.
- Edit the page in the in-browser editor.
- Click the green Propose file change button.
This process does not require any knowledge of git, checkouts, pull requests, anything beyond what someone would need to know to edit any popular wiki platform’s page.
The doc site maintainers then have a pull request to review and merge if they think the changes are correct. Upon commit, the site is automatically re-rendered and deployed. Putting the review process here (which does require a bit of advanced knowledge, by those that already have it) is actually a good thing, because it reduces spam and other vandalism and/or changes that disrupt the planned structure of the documentation.
Generally, my professional recommendation for anyone wanting to build infrastructure, is to be conservative and only deploy new tools when one is certain that they can’t do what they need with what they currently have. This is especially true in open source projects where resources are scarce. Here’s a good explanation of why:
So, I’d definitely encourage folks to explore existing/available tools before adding more complexity.