Skip to main content
FEATURE 10 / 11

Your prose moves in with the reference.

Guides, tutorials, architecture notes — Markdown files declared in one line and rendered in the browser like everything else. They share the navigation, the theme, the language and the search with the reference, and they can point straight into it.

demo.apiglow.dev/#/docs/getting-started · petstore.yaml
A prose guide rendered inside the docs: operation cards linking to two endpoints, tabbed code samples and an IMPORTANT callout, with the page ToC on the right. A prose guide rendered inside the docs: operation cards linking to two endpoints, tabbed code samples and an IMPORTANT callout, with the page ToC on the right.

REAL SCREENSHOT, SHOWN AT 1:1

Declared in one line, woven into the nav.

A docsPages entry is a title and a body — a file URL, inline content, or the id of a script element already in your host page. Array order is nav order; entries can form one level of groups, link out to external URLs, or come from a JSON manifest your pipeline generates. An existing README or CHANGELOG works untouched: frontmatter written for another tool is stripped, not rendered.

And the nav has two zones: nav: "bottom" on any top-level entry sends it to an appendix at the foot of the sidebar, below the whole API reference — support and legal pages stop pushing the endpoints down.

Pages, a group, an external link — and an appendix zone
{ "docsPages": [
  { "title": "Getting started", "url": "./getting-started.md", "home": true },
  { "group": "Guides", "pages": [
    { "title": "Pagination", "url": "./pagination.md" } ] },
  { "title": "Service status", "href": "https://status.example.com",
    "nav": "bottom" } ] }

Your pages talk to the reference.

A [link](apidoc:createOrder) renders inline with the operation’s method badge and jumps to its documentation — by operationId or by "METHOD /path", webhooks included. A fenced block listing references becomes a row of operation cards: method, path, summary, deprecation badge. An unresolvable reference renders visibly broken rather than becoming a dead link.

Written for readers, not for a build step.

GitHub-style callouts (> [!NOTE] through [!CAUTION]) become proper alerts — and degrade to plain blockquotes anywhere else your Markdown lives. Adjacent code fences become tabs, and one language choice follows the reader across every tab group on the page. No plugin, no build: it is the same file GitHub renders.
Three adjacent code fences rendered as a cURL / Node.js / Python tab group. Three adjacent code fences rendered as a cURL / Node.js / Python tab group.
[03]ADJACENT FENCES BECOME TABS

The guide reads with the reader's own values.

{{var}} resolves in prose from the same environment the try-it uses, so a guide renders with the reader’s base URL and the reader’s tenant id — and the fence’s copy button copies what resolved, because what you paste has to run. Personalized documentation, with no server, no account and no rendering pipeline. Sensitive values are the one thing that never appears: they render as a masked chip, and the value reaches neither the page, nor the clipboard, nor the search index, nor any export — not redacted afterwards, never emitted. A variable with no value shows a chip that opens the environment manager, because defining it is the only next step.
What you write — the reader sees their own values
Every request goes to `{{baseUrl}}`, authenticated with
your key:

```bash
curl -H "X-Tenant: {{tenant}}" {{baseUrl}}/pets
```

The chrome comes for free.

Every prose page gets a table of contents that follows your scroll, prev/next paging in nav order, and its place in the Cmd+K palette: headings and body text are indexed — lazily, on the first search, so pages nobody searches are never fetched. Titles and bodies accept per-language maps, and a home: true page takes over the landing route (the displaced technical overview keeps its own route). Mark a page kind: "changelog" and its releases render as a timeline. The same prose also travels with the AI surface exports.
An Important callout rendered from GitHub-flavored Markdown blockquote syntax. An Important callout rendered from GitHub-flavored Markdown blockquote syntax.
[05]A GFM CALLOUT, RENDERED

Ask your readers, and be the only one listening.

Point feedback.url at an endpoint of yours and every page grows a “Was this page helpful?” row. A click POSTs { "page": "pagination", "verdict": "up" } to your server — the page’s slug and a thumb, nothing else. Leave the key out, as it ships, and the row does not exist. It is the only thing in ApiGlow that ever sends a reader’s action anywhere; it goes where you said and nowhere else, and there is no product of ours at the other end to collect it.
The only line that opts you in
{ "feedback": { "url": "https://example.com/docs-feedback" } }

Where it stops.

Operation cards are links into the reference, not embedded try-it consoles — running requests stays in the try-it console, by design. Groups nest one level: a manifest that tries to nest deeper is rejected with a console warning, not silently flattened.