Hi everyone,
I am sure there is no "best" tool for it but what are your recommendations for documentation. It should support MDX.
- Gatsby has some nice themes for documentation
- there is Docz which is built on top of Gatsby
- Dokz which is powered by NextJS
- I am sure there are a lot more tools out there
What is your preferred choice? What would you use if you have to start writing documentation today?
Top comments (23)
VuePress is an efficient tool for writing documentation: vuepress.vuejs.org/
Seconded I asked a similar question and I have decided to use this for my own personal docs as I wanted something Vue based.
Personally, I feel like the industry needs a new take on docs in general. We're rethinking the process of using docs, through metadoc.io... basically docs as a data source. We're focusing on documenting Go libs to start (because it's low hanging fruit), but I've made alot of headway on a JS doc generator as well (github.com/metadoc). By focusing on the production of data instead of HTML, we'll be able to generate pretty/unified docs in just about any format.
I really like LaRecipe
I actually wrote a post about it a few weeks ago on DEV:
Write gorgeous documentation for your products using Markdown inside your Laravel app
I'm currently using a folder called "documentation" and a bunch of .md files.
I figure the documentation is then with the source code when the developer is working on it, and therefore doesn't need an internet connection to work.
It does the job for now, but I want to look at alternatives at some point. I want it to be part of source control so I can add items to the code reviews to document certain things.
I wrote up a whole post on this topic that covers some options (all Jamstack focused). stackbit.com/blog/jamstack-documen...
For docs, I prefer something like Hugo as I really don't see the need to have a React-based frontend on it since the primary goal is just to serve up static content. I like Hugo for this because it compiles incredibly fast and docs sites can get large.
Thank you for sharing, I will check it out.
At work we use Hugo with the Learn theme. It works really well but it is a bit of a pain to have to commit code to update the documentation.
At home I use Notion for just about everything, including documentation.
I would like to thank you all for joining the discussion.
Our investigation is over and we made a decision. We are going to use Gatsby with Docz extended theme.
A couple of points which led us to this decision:
gitbook.com/ anyone?
I've tried tools like Jekyll and Hugo, both of which I still use for blogs, but they didn't meet requirements for certain documentation projects.
Now I'm a huge fan of Sphinx: which is open-source, and doesn't require any licensing. It can use Markdown or reStructuredText (rST). rST has become my go-to, and has seemed capable of doing more things within Sphinx out-of-box.
Sphinx can be used for general documentation, but can also automatically generate documentation from Python docstrings in code repositories, Javascript projects (thanks to efforts by Mozilla), and even Go or .NET with other extensions: all by pulling from comment blocks to make use of documentation from within the code base itself.
If arguments/options are already being documented within the code, then why not extract it to add to the separately written docs?
Automation can be introduced to documentation around things like spelling and URL link validation.
Automation pipelines can include jobs that generate PDFs (Sphinx uses things like LaTeX/LuaTex/XeTeX/etc.) and even ePUB files from the documentation, too, rather than just the HTML static site.
I'm thinking of creating some quickstart projects that use GitLab/GitHub Pages, and GitLab CI / GitHub Actions for automatically building and deploying websites in a GitOps fashion. I'll be including PDF generation as part of the pipelines.
I do have some biases here, though, like using Python as my tool of choice. Sphinx is python-based. I've also been wanting to create tooling that can generate a blog but also an ebook/PDF from blog contents. That, and even print-ready PDFs with proper formatting for print-on-demand (POD) style printers like KDP. I also have many projects that cross-reference each other, so that idea of importing compatible rst files from other source repos was ideal.
Sphinx is something I've been meaning to check out! A lot of open source projects use it, so it seems useful to know how it works when contributing to a project.
I would be really interested in reading a write up on how you do this, if you ever have the time!
I wanted to update here: I did a rather major pivot toward adopting Dendron, so I want to make sure to mention it here. My long-term goal is to use LaTeX and other tooling that make use of the Markdown notes and docs I take in Dendron. I have converted my main website over to using it: icanteven.io/
A major difference for Dendron is that it isn't just meant to be a publishing tool from a CLI, though that is a definite feature. Dendron is a VSCode / VSCodium extension that provides an excellent UX for knowledge management in general, which the other tools (such as Hugo, Sphinx, Jekyll, etc.) don't have. This has made my life easier, and having the ability to pull documentation from multiple vaults (git repos of documentation) into a single workspace, and to selectively publish a collection of documentation, is really cool.
Now, I've even joined the Dendron team! We cross-post under the Dendron
dev.to
org here, and the documentation is at wiki.dendron.so. I highly recommend it, and to checkout the growing Discord Community.I like Vuepress and MkDocs with Material Theme.
For API documentation, Redoc.