Blog posts
Posts are Markdown files in src/content/blog/. The file name becomes the URL: my-first-post.md is published at /blog/my-first-post/.
---
title: Launching our new studio site
description: What we changed, why, and what's next. Shown in search results and on the blog index.
date: 2026-11-03
category: News
tags: [launch, studio]
---
Your post, in Markdown.
| Field | Required | Notes |
|---|---|---|
title |
Yes | 3–120 characters |
description |
Yes | 15–200 characters; used for search and social cards |
date |
Yes | YYYY-MM-DD |
updatedDate |
No | Shown as “Updated” and used in the sitemap |
category, tags |
No | Shown on the post |
draft |
No | true keeps the post out of the build |
seo |
No | Override title, description, ogImage, or noindex for this post |
The build fails with a clear message if a required field is missing or too long, so typos never reach production.
Blog themes often add fields, such as a cover image or a featured flag, or turn category into a fixed list of topics. The full list of fields is in src/content.config.ts, and your theme’s page under Themes shows an example post.
New posts show up automatically on the blog index, the home page’s latest posts, the RSS feed, and the sitemap.
Legal pages
privacy.md, terms.md, and accessibility.md in src/pages/ are placeholders. Replace them with text that matches how your site actually works.
---
layout: ../layouts/ProseLayout.astro
title: Privacy Policy
description: How this site collects, uses, and protects your information.
eyebrow: Legal
updated: 2026-11-03
---
Any Markdown page with layout: ../layouts/ProseLayout.astro gets the same treatment, so this is also the quickest way to add simple pages.
More collections
Collections are defined in src/content.config.ts. The base ships only blog. Themes that need more, such as projects, team members, or menu items, add them there. Your theme’s page lists any extras.