> Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

---
title: Pages
description: Frontmatter fields, page slugs, sidebar titles, icons, tags, and metadata options for MDX documentation pages.
icon: file-text
---

# Pages

Every page in a Holocron site is an **MDX file** (.mdx or .md). Pages are discovered through the navigation config in `docs.json`, not by convention.

## Page slugs

The slug of a page is its file path relative to the pages directory, without the extension:

| File path             | Slug              |
| --------------------- | ----------------- |
| `index.mdx`           | `index`           |
| `getting-started.mdx` | `getting-started` |
| `guides/auth.mdx`     | `guides/auth`     |
| `api/users.mdx`       | `api/users`       |

Reference these slugs in your `docs.json` navigation:

```json
{
  "navigation": [
    {
      "group": "Guides",
      "pages": ["getting-started", "guides/auth"]
    }
  ]
}
```

## Frontmatter

Every page can have YAML frontmatter at the top. Add `$schema` for editor
autocompletion and validation:

```mdx
---
$schema: https://holocron.so/frontmatter.json
title: Authentication
description: How to set up auth in your app.
icon: lucide:lock
sidebarTitle: Auth
tag: New
---
```

### Supported fields

| Field                 | Type      | Description                                                    |
| --------------------- | --------- | -------------------------------------------------------------- |
| `title`               | string    | Page title, used in sidebar and `<title>` tag                  |
| `description`         | string    | SEO description and subtitle                                   |
| `icon`                | string    | Icon name displayed in the sidebar                             |
| `sidebarTitle`        | string    | Short label for the sidebar, letting `title` be longer for SEO |
| `tag`                 | string    | Badge label next to the page title in sidebar                  |
| `deprecated`          | boolean   | Marks the page as deprecated                                   |
| `api`                 | string    | Mintlify API page label like `GET /users`                      |
| `hidden`              | boolean   | Hides the page from navigation and adds `noindex`              |
| `noindex`             | boolean   | Keeps the page visible but adds robots `noindex`               |
| `cache-control`       | string    | Custom response cache header                                   |
| `keywords`            | string\[] | Additional keywords for search                                 |
| `robots`              | string    | Custom robots meta value                                       |
| `og:title`            | string    | Open Graph title override                                      |
| `og:description`      | string    | Open Graph description                                         |
| `og:image`            | string    | Open Graph image URL                                           |
| `twitter:title`       | string    | Twitter card title                                             |
| `twitter:description` | string    | Twitter card description                                       |
| `twitter:image`       | string    | Twitter card image                                             |

## Sidebar title

Use `sidebarTitle` to show a **shorter label** in the sidebar while keeping a longer, more descriptive `title` for SEO and browser tabs.

The `title` field controls the `<title>` tag, which is what Google shows in search results. Longer, keyword-rich titles rank better. But long titles make the sidebar hard to scan, so `sidebarTitle` lets you decouple the two.

```mdx
---
title: Authentication — Setting Up OAuth and API Keys
sidebarTitle: Authentication
---
```

In this example, Google sees "Authentication — Setting Up OAuth and API Keys" but the sidebar just shows "Authentication".

## The index page

The page with slug `index` renders at `/`. Every other slug maps directly to a URL path (e.g. `guides/auth` renders at `/guides/auth`).


---

*Powered by [holocron.so](https://holocron.so)*
