Skip to main content

Build good docs for basically nothing

Your customers shouldn't have to wait for a docs budget before they can use your product.

I've built documentation at Weavr and, before that, Codat. The approach behind this series is simple: publish static files, keep the content in Git, and use open-source tools for the features you need. Spend your time helping someone use the product.

This series builds a documentation site for Slot, a fictional booking API. You start with two pages and a deployment. Then you add navigation, search, definitions, and an API reference. You can stop after any part with a useful site.

Start building​

TutorialWhat you'll build
1. Put your docs online for basically nothingA Docusaurus site, a working getting-started guide, and a repeatable static deployment.
2. Make your docs useful to someone who isn't youTask-based navigation, local search, and a glossary that explains terms in context.
3. Add an API reference without buying a platformAn OpenAPI description rendered with Speccy, linked to the guides it supports.

You need Node.js 24, npm, a text editor, and a terminal. Deployment also needs Git, a GitHub account, and a Cloudflare account. You don't need a real booking service or payment details for a docs product.

The example API runs locally and returns a fixed booking. It isn't a production service. That keeps the tutorials runnable without an employer account or credentials.

Take the finished example​

Download the working site, extract it, and run these commands inside slot-docs:

npm ci
npm start

The archive contains the result of all three tutorials, including its dependency lockfile and the demo API. Follow the series from the beginning if you want to understand each choice, or use the download to start from the finished setup.

The source lives in examples/docs-site in this site's repository. The tutorials pin Docusaurus and plugin versions; keep the lockfile when you adapt the example.

What “basically nothing” means​

A static docs site can have a $0 hosting bill. Cloudflare Pages documents free, unlimited static asset requests, with separate build and file limits. That's the hosting model used here. It doesn't make writing and maintaining documentation free. Pages pricing, platform limits.

ItemCost in this series
Static hostingFree plan, within its published limits.
DomainUse the included pages.dev address, or pay for your own domain.
SearchRuns against an index built with your site. No hosted search account.
Glossary and API rendererOpen-source packages installed in the site.
Builds and reviewsYour time, plus any usage beyond your Git and hosting plans.
Writing and maintenanceSomeone still owns the content, dependencies, and customer experience.

Hosting terms were checked on October 21, 2026. Check them again when you deploy. If a paid platform saves your team enough time, buy it. You should still be able to serve your customers before that purchase makes sense.

Where the series goes next​

The first three tutorials form the starting site. These are the planned follow-ups, rather than features you need before you publish:

  • Stop broken docs reaching your customers. Production builds, previews, and API changes checked with Speccy's CLI and GitHub Action.
  • Keep a growing site understandable. Multiple products, shared content, redirects, and versioning when customers need more than one version. An optional introduction to OMG for authoring API descriptions.
  • Let the people who know the product improve the docs. Browser-based edits, clear ownership, and a review that checks the product as well as the prose.
  • Tell customers what's changed and what's broken. The banner and Statuspage plugins. Consent tooling if you choose to add tracking.
  • Build the one feature your product needs. A small MDX component, followed by the plugin starter when it earns its own package.
  • Make your docs useful to AI tools. Markdown exports, the open-with-LLM plugin, and the different operating costs of an MCP service.

I made Speccy and the Docusaurus plugins linked here. Each enters the series when there's a job for it. You can browse the wider collection in the plugin docs and live demos.

Start with a site you can publish →

Maybe I'll send an email once in a while

Monthly digest. No spam.