# Mintlify Preview

> Run the public Mintlify product docs site locally for live preview. Use when previewing or iterating on docs under `docs/` (`.mdx`/`.md` pages, `docs.json` nav), or when the user says "start the docs", "run mintlify", "preview the docs site".

- Skill: `latitude-dev/mintlify-preview` (Agent Skill)
- Install (CLI): `npx skillmds@latest add latitude-dev/mintlify-preview`
- Raw SKILL.md: https://api.skillmd.com/api/skills/latitude-dev/mintlify-preview/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: latitude-dev (https://skillmd.com/u/latitude-dev)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/latitude-dev/mintlify-preview

---


# Mintlify docs local preview

The public product docs site lives in **`docs/`** (`docs.json` + topical `.mdx`/`.md` pages). It is served locally with the **Mintlify CLI** (`mint dev`). This is the **product docs site**, not `dev-docs/` — for durable internal domain docs see the [docs skill](../docs/SKILL.md).

## TL;DR — start the server

Run from the **`docs/` directory** (where `docs.json` lives), on a non-default port so it doesn't collide with the web app on `3000`:

```bash
cd docs
PATH="$(ls -d "$HOME"/.nvm/versions/node/v22.*/bin 2>/dev/null | sort -V | tail -1):$PATH" mint dev --port 3333
```

Then open **http://localhost:3333**. A page at `docs/<folder>/<file>.mdx` is served at `http://localhost:3333/<folder>/<file>` (e.g. `docs/monitors/overview.mdx` → `/monitors/overview`). The server hot-reloads on edits to any `.mdx`/`.md` or `docs.json`.

Prefer running it in the background and tailing the output until you see `✓ preview ready`.

## Why the `PATH` prefix (node version gotcha)

**Mintlify does not run on Node 25+.** This repo's default/active Node is often 25, which fails with:

```
erro mintlify is not supported on node versions 25+ (current version 25.9.0).
```

The `PATH=...` prefix above pins an installed **Node 22 LTS** (from nvm) for just this command, without changing the repo's active Node. If no `v22.*` is installed, install one (`nvm install 22`) or use any LTS `<25`. `mise`/`nvm activate` in a child shell won't help — prefix the `PATH` on the command itself.

## Keep the CLI current (schema gotcha)

`docs.json` uses current Mintlify schema features (e.g. `styling.codeblocks` as an object). An **outdated CLI** rejects valid config with:

```
🚨 Invalid docs.json: #.styling.codeblocks: Expected ... received 'object'
```

Fix by updating the CLI, **not** by editing `docs.json` (the checked-in config is correct for the real deploy):

```bash
PATH="$(ls -d "$HOME"/.nvm/versions/node/v22.*/bin 2>/dev/null | sort -V | tail -1):$PATH" mint update
```

> The `mint` and legacy `mintlify` binaries can live under different Node versions and update independently. Update the **same** binary you run `mint dev` with (i.e. under Node 22).

## Verify it's up

```bash
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:3333/        # 307 redirect to first page — fine
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:3333/monitors/overview   # 200 = page resolves
```

## Rules

- **Never edit `docs.json` to satisfy a stale local CLI.** Update the CLI instead.
- Add new pages to the nav in `docs.json` (the `navigation.groups[].pages` arrays). A `.mdx` file that isn't referenced there won't appear in the sidebar.
- Use **port 3333** (or any free port ≠ 3000) so the docs server and the web dev server can run together.
- `<Frame>`/`<img>` blocks pointing at missing `docs/images/...` files render as broken-image placeholders — expected until the assets land.

