top | item 29264374

Ask HN: What are you using for public documentation these days?

174 points| vital101 | 4 years ago

On a new side project I'm working on I need to have a fair amount of documentation for usage, implementation, options, etc. In the past I've used https://docsify.js.org hosted on Vercel, but I was curious if there is anything else out there people like. Looking for free or paid options. So long has I can host on a subdomain I'm indifferent.

Thanks!

109 comments

order

navaneethpk|4 years ago

We are using Docusaurus (https://docusaurus.io/ ).

   - it is easy to configure/customise 
   - looks really great out of the box
   - solid documentation
   - fast
In our case, we just had to change the colors and font. Here is our Docusaurus code if that's helpful: https://github.com/ToolJet/ToolJet/tree/develop/docs and here is the live documentation: https://docs.tooljet.com/

shafyy|4 years ago

I'm also using Docusaurus for Fugu (https://docs.fugu.lol).

One thing that bothers me is that they offer a free Algolia integration for open-source projects, but they declined my application despite being open source.

So, search not working for now, need to have another look at that :-)

Edit: I just got an email from Algolia DocSearch saying that my documentation qualifies after all :-) If someone from that team read my comment and send the email, thanks! If not, it's a big coincidence, also good!

lelandfe|4 years ago

> live documentation: https://docs.tooljet.io

The two separate hamburger menus were hard to parse at first on mobile. Do your social media links really deserve higher placement than the navigation?

dsmmcken|4 years ago

We also use Docusaurus. It has good defaults. If you are familiar with react, mdx (markdown + jsx) allows you to easily create and embed interactive react components.

It's technically still in beta with frequent updates, and the occasional breaking change.

For our site (https://deephaven.io/core/docs/), what I liked was the ease of adding your own plugins. We made a plugin that extracts all our code examples, and automatically tests them against new versions to notify us if any examples break or become stale.

akajla|4 years ago

+1 for Docusaurus. We're using it at Warrant (https://docs.warrant.dev/). In addition to what folks have already mentioned, it has good blogging support as well (markdown, post tags, SEO/social tags etc). Makes it much easier to manage both docs + blog from the same system.

gompertz|4 years ago

Sort of curious, is there key differences between Docusauras and Hugo that would make it worth switching??

grodriguez100|4 years ago

Aspect ratio of screenshots looks wrong when the docs are browsed from mobile phones. Is this a docusaurus issue or perhaps specific to your docs?

newaccount74|4 years ago

Your docs even support dark mode! Did that come out of the box or did you add that?

tomw1808|4 years ago

I'm using mkdocs with the material plugins [1]. I'm running it mainly for a Blockchain Education site for my labs from my course, which seems to be fine [2].

I did a fair amount of customization though, so I am running all this as mkdocs plugins, not directly from the materials project.

[1] https://squidfunk.github.io/mkdocs-material/ [2] https://ethereum-blockchain-developer.com

tedyoung|4 years ago

Another +1 from me for mkdocs and mkdocs-material (and I'm also a supporter of squidfunk). I use it for lab exercises[1] as part of my online courses (deployed onto Netlify). It just works and looks good.

[1] https://moretestable.com

4kelly|4 years ago

+1 for Material MkDocs. It’s beautiful and functional by default so I can just focus on documenting.

twalla|4 years ago

Another happy user of mkdocs, also really like gitbook. If I had to choose something for people who didn't like git/plaintext and wanted richer embeds, I think I'd suggest Notion.

evolve2k|4 years ago

Oh wow this looks great! Simple conversion of markdown into an opinionated simple to use really nice looking doc site.!

Cheers for this :)

franciscop|4 years ago

I have an unfinished side project called Documentation Page:

https://documentation.page/

It's "unfinished" because I'd need to integrate payments and do all the accounting on my side (non-trivial as an individual living in Japan), but otherwise it's worked pretty well for my own projects.

It parses your Github Repo to generate the website. You can define your docs as a single readme.md file, a folder called "documentation", or custom configuration otherwise. Some examples hosted by Documentation Page:

- https://statux.dev/: simple single-page docs and website, menu config in https://github.com/franciscop/statux/blob/master/documentati....

- https://react-test.dev/: split into multiple pages, you specify the folder and it'll automatically merge the markdown files. See config https://github.com/franciscop/react-test/blob/master/documen...

- https://crossroad.page/: has an landing page, but that is not officially supported (yet). See the configs in https://github.com/franciscop/crossroad/blob/master/document...

djrockstar1|4 years ago

The examples look really elegant and polished. I could definitely see myself using something like this. It's times like these I wish HN had a save comment button.

Also it's pretty funny that a documentation service has incomplete documentation. https://documentation.page/documentation#how-it-works

stichers|4 years ago

Basic markdown and Sphinx to build into HTML, publishing via github pages. It's an open source project so putting the docs alongside the code just makes sense. Although Sphinx isn't great for my money, it gets the job done.

ak217|4 years ago

I use this combination too, and I love it. Sphinx has great hackability and support, while github pages is free and very reliable. Here is a script that I use to publish to github pages, assuming the sphinx config is under "docs":

     sphinx-build docs docs/html
     git branch -D gh-pages || true
     git checkout -B gh-pages-stage
     touch docs/html/.nojekyll
     git add --force docs/html
     git commit -m "Docs"
     git push --force origin $(git subtree split --prefix docs/html --branch gh-pages):refs/heads/gh-pages
     git checkout -

acidburnNSA|4 years ago

I have grown to absolutely love Sphinx. The plugins are wonderful, including Sphinx gallery, jupyter integration, and Sphinx-needs for requirements management.

eysi|4 years ago

We use GitBook at Garden (docs.garden.io).

It's zero effort which is important for a small team like ours. Allows us to focus on the content as opposed to bikeshedding design.

Overall I'm happy with the look and feel of things and the support is typically good.

That being said, they recently shipped changes that essentially made the docs site impossibly slow for a few days. They've been working on fixing that and it's better, but not as snappy as before. I also preferred the previous look (it's very similar but the new one is a bit more clunky imo).

We do have a lot of long code examples (YAML reference docs) which I think may contribute to the "sluggishness".

But overall I'd recommend if you want to minimise effort and maintenance. In any case it's easy to give it a spin and see if it works for you.

warpech|4 years ago

We (Handsontable) now use VuePress[1] for our docs[2] and we are very happy with it. The best feature for us is the ease of customization.

Our challenge right now with the docs is to get a fantastic code snippet runner there. But that's beyond the scope of your regular documentation management tool, I suppose. VuePress will make it easy for us to integrate our solution.

[1] https://vuepress.vuejs.org/

[2] https://handsontable.com/docs/

royjacobs|4 years ago

I can vouch for VuePress as well. It's fairly straightforward to set up, and extremely easy to deploy. I've used it to not only write the docs for my 6502 assembler, MOS[1], but I took advantage of the fact that VuePress could generate a very simple front page as well.

[1] https://mos.datatra.sh

Symbiote|4 years ago

Antora, which uses Asciidoctor (rather than Markdown).

The obvious example is the Antora and Asciidoctor documentation:

https://docs.antora.org/antora/2.3/

https://docs.asciidoctor.org/asciidoc/latest/

davidwf|4 years ago

Really really love Antora. I've been pushing hard for it for internal docs -- one very nice attribute is that it can collate docs from multiple Git repos. This way, you can have documentation close to the code, like I want as a developer, while having a single "documentation site" like most management and non-technical users want.

gk1|4 years ago

We use Redoc.ly (https://www.redoc.ly) which has both a self-hosted and a managed version. I like that it integrates with GitHub, generates API Reference docs based on OpenAPI specs. It also has a "developer portal" for user guides, generated from markdown. All-in-all makes it easy to publish great-looking docs.

Preview: https://www.pinecone.io/docs/

h3rald|4 years ago

I am "eating my own dog food" in the sense that I am currently using two projects that I developed specifically for that:

- HastyScribe[1] -- an opinionated markdown compiler that supports advanced features for technical writing like macros, fields and transclusion. - HastySite[2] -- a highly customizable static site generator based on HastyScribe and min[3], another project of mine (and a pretty deep rabbit hole to go into, if you like unusual programming languages)

Examples can be found in the docs listed for most of my with my projects, here:

https://h3rald.com/projects

The only thing missing from those is search, but I could plug in LiteStore[4] and be done with it. OK, I think that's enough self-promotion for one comment, but you did ask...

[1] https://h3rald.com/hastyscribe/

[2] https://h3rald.com/hastysite/

[3] https://h3rald.com/min/

[4] https://h3rald.com/litestore/

kaycebasques|4 years ago

Can you link me or explain some more what you mean by macros, fields, and transclusions? Your project makes it easy to document these aspects of a programming language? Or these are features of your documentation system itself?

Joe8Bit|4 years ago

If you're looking for a SaaS solution, I can really recommend Archbee[0]. We've moved to it from ReadMe[1] recently, due to constraints in ReadMe's product and the challenges scaling it commercially in our model.

[0]: https://www.archbee.io/ [1]: https://readme.com/

kaycebasques|4 years ago

What ReadMe constraints did you run into? I don't work for them, I'm just a technical writer who has to use it from time to time and wants to be aware of footguns.

perfopt|4 years ago

Is there anything that supports languages other than English - specifically Indian languages. I am writing documentation (book) to be distributed online. I presently use mdbook but markdown does not support anything other than English.

Symbiote|4 years ago

What do you mean by Markdown not supporting other languages? I don't see how it wouldn't support other languages.

Although we're using Asciidoctor (syntax / markup language) with Antora (tooling) ourselves, including with a Chinese translation. It's similar to the Fedora documentation:

https://docs.fedoraproject.org/ur_PK/docs/ (Urdu? Most translations are very incomplete; it's just volunteers.)

samcrawford|4 years ago

https://www.mkdocs.org/. Probably not the latest or greatest, but it produces nice looking documentation from markdown. Serves my purposes well.

jonjon10002|4 years ago

Markdown, Gatsby. Source is in GitHub, GHA builds the HTML output, then schleps it over to an S3 bucket.

I inherited this setup. Works great from my end, but we've got an engineering team that set it up and owns the plumbing of everything. That's key, because many orgs have a "we set it up, now it runs forever and you deal with it" mentality. And Gatsby has a super steep learning curve. And I'm not a designer.

Previously used Jekyll and still use it (minimally) for my blog. Jekyll is okay but once you get past a couple hundred pages, performance gets exponentially worse. Had a site with a few thousand pages, and builds would take an hour or more. And that org had the aforementioned problem. A team designed it, then got laid off, and I'm trying to read a dummies book to figure out what size hammer to hit the thing with.

I've been in this for 25 years, so I've used about everything else. Flare, DITA, FrameMaker, RoboHelp, PageMaker. No typewriters, thankfully.

loh|4 years ago

We use [TypeDoc](https://typedoc.org/) to generate documentation from all of our TypeScript. It combines type definitions with surrounding comment blocks for easily navigable, clean documentation.

For non-TypeScript codebases, we use [Docusaurus](https://docusaurus.io/).

I believe there are also plugins which can make TypeDoc output compatible with Docusaurus.

None of our docs are public at the moment, but a good example of documentation generated by TypeDoc would be Amazon's `aws-sdk`: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index...

jomar|4 years ago

A small Perl script <https://github.com/jmarshall/manconvert> that grinds a subset of man page nroff syntax directly into HTML. (That subset being “the constructs that are used in the man pages that it's used on”.)

Some of the styling could be improved (those section headings for one!), but IMHO it produces better results than other more general-purpose manpage to HTML converters: see e.g. <https://www.htslib.org/doc/samtools.html>.

austincheney|4 years ago

I am frequently working on ways to document inline with the code using comments and then extract those comments during the build process to keep documentation up to date automatically. The comments are formatted as mark down so that they may be converted from code comments to stand alone mark down documents.

I have also noticed that in VS Code a comment immediately preceding a type or interface declaration written in mark down format becomes formatted markdown in the tooltip where that type is used.

pcthrowaway|4 years ago

Are you talking about Typescript here? If so, could you give an example of how to make this happen? This sounds incredibly useful.

robbiejs|4 years ago

I have a custom setup. I don't use a generator. I don't like my JS files with all these doc-comments.

The downside: quite a lot of work to create something from scratch.

The upside: I have created a playground-type API, where all options, methods & events can be tried out directly from the docs. They interact with the data grid.

https://www.datagridxl.com/api/options

woudsma|4 years ago

As others in this thread have mentioned, Docusaurus is really good. It was very easy to add search with Algolia and meta tags for SEO as well.

parkersweb|4 years ago

I've not used it yet - but planning to give Nextra (https://nextra.vercel.app/) a go next time around.

The 'docs' theme is intended as a quick way to produce a documentation website based on Next, which you can obviously customise further with your own components if needed.

hermitcrab|4 years ago

I used Help and Manual to document my software: https://www.helpandmanual.com/

It can generate HTML, CHM, PDF etc, all from a single source.

It is one of my favourite software tools (I am a customer and have no financial interest in it).

andix|4 years ago

Markdown in Git, Gitlab or GitHub. KISS.

oftenwrong|4 years ago

This is my preferred option as well. Both GitLab and GitHub turn your markdown (and some other formats) files into static pages. They both have web-based editing support, so it is not necessary for a user to know anything about git to contribute. Both can automatically generate a table of contents for a page. And it gives you better versioning than any wiki system.

dabeeeenster|4 years ago

We [1] moved from mkdocs to docusaurus v2 and couldnt be happier. Very active project with a great community, and enough flexibility and config overrides when we need it.

[1] https://docs.flagsmith.com/

kaycebasques|4 years ago

As I read through these comments (and discover some interesting tools!) I want to give a word of caution for anyone using this thread to make a tooling choice. The "best" documentation system for you is heavily dependent on your product [1], your contributors [2], and your ability to maintain/customize the underlying tooling. Just because you're seeing Tool X 10 times in this comment doesn't necessarily mean it's best for you!

[1] E.g. documenting an API is very different from documenting a GUI product

[2] E.g. on https://web.dev we had a large pool of authors. They were all fairly technical but even so we often ran into questions about build errors, etc.

justin_oaks|4 years ago

Agreed. I'm looking for documentation software that supports a WYSIWYG or otherwise visual editor. This is because the contributors to our documentation are not very technical.

If your contributors aren't technical then things that require Markdown, Git, or a build process are rejected pretty much immediately.

Currently I'm looking at Mediawiki or WordPress, but I'd love some other suggestions for non-technical contributors.

mooreds|4 years ago

We use asciidoctor + jekyll at $CURJOB. It seems to work great, can be hosted for free or low cost. Lots of templating wins.

I do wish it supported running code snippets, but I think that can be done with some scripts and including things. (On the list, not done yet.)

zabil|4 years ago

For my project I use eleventy with markdown and commit to github which then deploys on netlify.

To make it very easy to navigate the documentation it's integrated with docsearch(algolia).

All of this is free for open source projects.

XCSme|4 years ago

I use GitBook for https://docs.uxwizz.com/, but I want to move away from them, mostly because of their poor export features.

I want to pay for the services to be able to export PDF, but their "starting" plan is for $6.40/mo/user AND you are forced to start with at least 5 users. So I would have to pay $384 per year just to be able to export PDF for a single documentation with a single user.

XCSme|4 years ago

Nevermind, checking their pricing https://www.gitbook.com/pricing it looks like the export feature only starts at the "Business" plan, that is $2880 to be able to export PDF, a complete joke. What's worse is that when I first started using them, they had the export to PDF feature and they removed it.

auspex|4 years ago

Anyone know of a good hosted documentation that allows you to password protect the docs for a startup? (We don’t want public documentation and want to control access per user)

innocentoldguy|4 years ago

Asciidoc and Antora. We document a product that has a bunch of micro services and each micro service is in a separate git repository. We store our documentation alongside the related code in git, so it is spread out across several git repositories. Antora makes it simple to pull asciidoc files from multiple git repositories and compile it all into one static site. It also has good search functionality and support for versioning using either git branches or tags.

superzamp|4 years ago

We're using readme.com for https://docs.numary.com/

Pretty satisfied with the productivity gain and the API docs generation from our OpenAPI file.

I just learned that their API would allow us to programmatically update the guide section as well, so we'll probably move the guides to a public github as well for contributions.

jabo|4 years ago

We use Vuepress for Typesense’s docs: https://typesense.org/docs/

I like the fact you can plug any vue components into the markdown. Haven’t started using that feature extensively yet, but the fact that it’s available is reassuring that I can customize things well if needed.

jrudolph|4 years ago

TL;DR: Favorite stack is Notion -> notion-markdown-cms -> VuePress -> netlify

So I've gone through a bit of journey doing docs for a product company. I feel that for a product company it's really important to own your documentation and the publishing workflow as it's a key part of your product.

GitBooks was my first stab. I liked git and markdown, however I disliked all the places where "proprietary" formatting/features crept in and once it got more closed/commercial wrt. publishing/theming pipeline we went out.

We then adopted docusaurus v1 for our product documentation. It's a great tool, but never really built custom components for it because we're not a react shop. We did integrate some nice tools to work with our markdown tool (e.g. markdown-lint, custom code snippet injectors etc). One downside of docusaurus is how much friction there is to create a new page. You have to create a markdown file, insert frontmatter, add it to sidebars.json, reload the dev server, then insert your content.

When docusaurus announced v2, we considered adopting it. Instead, we started looking into VuePress vNext. What I love about it is that its configuration is TypeScript (vs. JSON). This allows us to generate things like navbars, sidebars from code instead of manually wrangling JSON. It uses Vite for bundling and the local editing experience is therefore much faster.

As you write more and more docs, markdown editing experience becomes important. VSCode + the right plugins can get you far, but we found they all did not feel "fluent" to the point where our team _loves_ writing documentation. People often complained that our company wiki (Notion) feels much nicer, so we built a tool that allows us to use Notion as a "CMS" for our documentation: https://github.com/meshcloud/notion-markdown-cms It's really handy because that way we get perks like organizing content with databases, link pages using @mention syntax, drag & drop for screenshots etc. Publishing on netlify rounds it off.

kaycebasques|4 years ago

Thanks for the context. Which docs system one chooses is really dependent on that person's specific goals / product so it's helpful to see your detailed thinking here.

fenesiistvan|4 years ago

MS Word converted with some tools to html, chm, pdf.

krish888|4 years ago

Stoplight.io it has support for git, CI integration

eduardosasso|4 years ago

Not sure if you can self host but I had a good experience using gitbook.com on my latest project hotstoks.com

webwanderings|4 years ago

Docusaurus. It is so easy. I only wish I could figure out how to integrate xterm.js into it.

kaycebasques|4 years ago

Background: I've been a technical writer for 9 years. 6 at Google, 3 as the only writer at an IoT startup.

I helped Corrily with their docs [1] in August. They were interested in ReadMe.io. I wasn't keen on it because I had worked with Retool on their docs (hosted in ReadMe) a few years back and had found ReadMe lacking. But I was pleasantly surprised by how much it has progressed since then! If you're looking for a documentation product that is very easy to update and mostly just works, then it's worth checking out. The pricing structure gets steep very quickly though.

On https://web.dev I was introduced to Eleventy. Eleventy [2] is now my go to. The documentation for Eleventy itself is very strangely organized and needs a refactor. But I have found that there is always a way to accomplish whatever I need, and usually elegantly. Eleventy requires a lot of customization and probably wouldn't be a great fit for a huge contributor group with varying technical skill. If you're working solo or with a small team of technical people and need to do some deep customization it can be great.

Another project worth checking out is Docsy [3]. This is a Jekyll template specifically created for technical documentation.

Back at the IoT startup I had to set up the whole documentation system / tooling myself. I used Sphinx [4] and deployed to Heroku. Haven't used Sphinx since then but I remember being satisfied with it back then. reStructuredText, the flavor (?) of Markdown Sphinx uses, has some very nice features. I remember they had a very intuitive way to create tables. CSV format, I think... Again I was mostly updating the docs solo so "ease of contributing" wasn't a deciding factor (although when I left they might have struggled to update the docs, so maybe ease of contributing should always be a key factor).

I'll strike while the iron is hot here and mention that I'll probably be back on market in March - April and love to set up documentation systems (as well as write docs of course) if your company needs help with that. Poke around on my website (link in HN bio) to find my contact.

Edit: I left another comment in this thread cautioning to be careful when choosing a doc tool: https://news.ycombinator.com/item?id=29266957

[1] https://docs.corrily.com

[2] https://11ty.dev

[3] https://docsy.dev

[4] https://www.sphinx-doc.org/en/master/

geocrasher|4 years ago

I did some freelance technical writing a while back and the customer was using readme.io. It has its quirks but at the end of the day I ended up really liking it and will likely use it again for such projects.

pydry|4 years ago

hugo + netlify

255kb|4 years ago

[deleted]

diveanon|4 years ago

Curious about why html/css is the default option here, its seems like something that is easier to save offline would dominate.