name: repo-website-guide-create description: Create conceptual documentation and tutorial pages for the Valibot website at website/src/routes/guides/. Use when adding guides about schemas, pipelines, async validation, migration, or other topics. Covers directory structure, MDX templates, frontmatter, and content guidelines.
Adding Guides to Website
Guide for creating conceptual documentation at website/src/routes/guides/.
Directory Structure
website/src/routes/guides/
├── menu.md # Navigation menu
├── (get-started)/ # Intro, installation, quick start
├── (main-concepts)/ # Schemas, pipelines, parsing
├── (schemas)/ # Objects, arrays, unions
├── (advanced)/ # Async, i18n, JSON Schema
├── (migration)/ # Version upgrades, Zod migration
└── (category)/guide-slug/
└── index.mdx # Guide content
Note: Category folders use parentheses (Qwik route grouping).
Process
- Review 2-3 existing guides in the target category to understand style
- Choose category from existing or create new
- Create folder:
(category)/guide-slug/ - Create
index.mdxwith content - Update
menu.md
index.mdx Template
---
title: Guide Title
description: >-
A concise description of what this guide covers.
contributors:
- github-username
---
import { ApiList, Link } from '~/components';
# Guide Title
Opening paragraph explaining what the reader will learn.
## Section Heading
Content with clear, concise language.
\`\`\`ts
import \* as v from 'valibot';
const Schema = v.object({
name: v.string(),
email: v.pipe(v.string(), v.email()),
});
\`\`\`
## Another Section
Continue with additional sections as needed.
Use <Link href="/api/pipe/">\`pipe\`</Link> for internal links.
Frontmatter
Required fields:
- title: Page title and navigation label
- description: SEO description (use
>-for multi-line) - contributors: Array of GitHub usernames
Content Guidelines
Code Examples
- Use TypeScript (
tslanguage) - Import as
import * as v from 'valibot'; - Include comments for complex code
Links
Internal links use the Link component:
<Link href="/guides/schemas/">schemas guide</Link>
<Link href="/api/pipe/">\`pipe\`</Link>
Components
<ApiList label="Related schemas" items={['object', 'array', 'string']} />
Formatting
inline codefor API names, variables, file names- bold for genuine emphasis only — not as inline section labels
- Proper heading hierarchy (h1 title, h2 sections, h3 subsections)
Writing tone
- Write conversational prose, not terse reference-doc style
- Use first-person plural: "we recommend" not "you should"
- Do not use bold as inline section labels (e.g. avoid
**Label:** content). Use a proper subheading instead - Do not prefix blockquotes with bold labels (e.g. avoid
> **Note:** ...). A plain>is correct - Bullet list items do not need a bold prefix on each item
Images
Place images in the same folder as index.mdx:

Consider light/dark theme variants if applicable (e.g., diagram-light.jpg, diagram-dark.jpg).
Update menu.md
Add to /website/src/routes/guides/menu.md:
## Category Name
- [Existing Guide](/guides/existing/)
- [New Guide Title](/guides/guide-slug/)
Maintain logical ordering within categories.
Checklist
- Reviewed existing guides in the same category
- Folder structure:
(category)/guide-slug/index.mdx - Frontmatter: title, description, contributors
- Internal links use
Linkcomponent - Code examples use
import * as v from 'valibot'; - Added to
menu.md - Style matches existing guides