Astro · Routing and content

Define a content collection

Describe a folder of Markdown files with a schema, so front matter is validated and typed.

// src/content.config.ts
import { defineCollection, z } from "astro:content";
import { glob } from "astro/loaders";

const blog = defineCollection({
  loader: glob({ pattern: "**/*.md", base: "./src/content/blog" }),
  schema: z.object({
    title: z.string(),
    date: z.coerce.date(),
    draft: z.boolean().default(false),
  }),
});

export const collections = { blog };

Official Astro documentation

More routing and content commands

All routing and content commands · Astro cheatsheet

Was this page helpful?