Pages
Write Markdown documentation pages, customize the default pages, and search them.
Custom documentation pages are Markdown files under pages/ in the working directory. A page's
relative path is its route and its registry id: pages/guides/setup.md is served at
/guides/setup.
Create a page
npx handoff-app make:page setup guidesThis writes pages/guides/setup.md. If a default page has the same name, the new page starts with
its content. --force overwrites an existing page.
Frontmatter
---
title: Setup
description: How to install the design system in an application.
menuTitle: Setup
weight: 10
metaDescription: How to install the design system in an application.
enabled: true
---
Page content in **Markdown**.| Field | Purpose |
|---|---|
title | Visible page title |
description | Summary, shown under the title and in search results |
menuTitle | Navigation label |
weight | Navigation order |
metaTitle | Replaces the full browser title. Without it, the title is the page title plus app.title. |
metaDescription | Meta description |
enabled | false hides the page |
Pages support GitHub Flavored Markdown: tables, task lists, and fenced code blocks with a language. Each page gets a table of contents from its headings.
Customize the default pages
Handoff ships default pages for the home page, foundations, system, and guidelines. Copy them into
pages/ to change them:
npx handoff-app eject:pages--force adds the default pages that you have not changed yet.
Search
The documentation app ranks pages by title, description, and body. The same search backs
GET /api/docs/search/pages.json?q=... and the handoff_search_pages MCP tool.
Publish pages
npm run publish -- pages
npm run publish -- pages guides/setupEach page has one canonical Markdown source file. See Publish and checkout.