Content authoring
Markdown, frontmatter and images.
Every page is a Markdown file in src/pages/. The block between --- lines at the top is frontmatter: details about the page that vagejs uses for search, sharing and layouts.
---
title: Pricing
description: Plans and prices for teams of every size.
---
# Pricing
Our plans start at …Frontmatter
---
title: Pricing # required
description: Plans and prices. # meta description, Open Graph and llms.txt
draft: true # viewable in dev, left out of builds and page lists
noindex: true # published, but kept out of search and the sitemap
canonical: /pricing/ # point search engines at another URL
image: /images/pricing.png # social preview image
type: article # adds Article structured data
author: Your Name # only real values
datePublished: 2026-10-23
dateModified: 2026-10-24 # also the sitemap's <lastmod>
layout: default # which layout wraps the page
---Layouts can declare more fields of their own (see templates and layouts). When a value contains a comma or colon inside { }, wrap it in quotes. vage check warns about values that came out empty.
Images
Put images in public/images/ and reference them by path:
vagejs reads the file and adds its width and height, so the page doesn't jump while it loads. Every image after the first loads lazily. Write alt text that describes the image; vage check fails on images without it.
Drafts
draft: true keeps a page out of the build, the sitemap and every page list, while you can still view it with npm run dev. Links from published pages to drafts fail vage check.
HTML inside Markdown
You can mix HTML into Markdown, but it's sanitized: scripts, event handlers, javascript: links, iframes, forms and inline style attributes are removed. Embeds and styling belong in layouts, which are trusted code. See security for why inline styles are removed.
Links to other websites
Links to other websites must be approved in links.lock.json. Run npx vage links to see them, and npx vage links approve example.com to approve one. This protects your site from injected spam links.