Guide / Content
Content
Posts live in src/content/posts/*.md as Markdown with YAML frontmatter, loaded through Astro’s
Content Layer API and validated against the schema in src/content.config.ts. A post missing a
required field, or with the wrong type, fails the build with an error naming the file and field —
not a silently broken page.
Set draft: true in frontmatter, or date a post in the future, to keep it out of
npm run build output while still seeing it in npm run dev.
Docs pages (what you’re reading right now) work the same way, as a separate docs collection in
src/content/docs/*.md — add a file there and its id to the docs array in site.config.ts to
add it to the sidebar.