Products

Docs that ship in the same deploy as the code.

Documentation drifts when it lives in a different repository with a different pipeline. Stacks builds docs from markdown in the same project, generates the OpenAPI reference from the routes that actually exist, and publishes both with the application.

What this always turns out to involve.

The work that arrives whether you planned for it or not.

Drift is the default

A separate docs site is a separate release cadence, and the gap between them is measured in wrong examples.

API references rot fastest

Hand-written endpoint tables are stale the moment a route changes.

Search is expected

Readers give a docs site one query before they leave for the issue tracker.

Versioning is structural

Deciding it after launch means rewriting every URL you already published.

What is already in the box.

All of it in the same install, typed against the rest of your application.

Markdown, built in

docs/ becomes a site with navigation, sidebar, and theming through the docs build, configured in config/docs.ts.

Generated API reference

buddy generate:openapi reads the routes and resources you defined, so the reference describes the running app.

One deploy

The docs subdomain, its certificate, and its CDN are declared in config/cloud.ts next to the app.

Search included

Client-side or Meilisearch-backed search over the same content, without a crawler to schedule.

Shared theme

Docs, blog, and marketing pages read one palette, so the product does not change identity mid-click.

Examples that compile

Snippets can live in the repository and be type-checked by the same tsc run as the app.

The layers it leans on.

Every one of these ships in the same install. Follow one to see what it covers.

From the command line.

Buddy scaffolds, runs, and ships this the same way it does the rest of the app.

buddy dev docs buddy generate:openapi buddy build docs

Projects of this shape usually grow into one of these.