Skip to content

Basics / 06

Content & blog

Write blog posts in Markdown, edit the legal pages, and add content collections when a theme needs them.

Browse the docs

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.

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.