Content Collections(コンテンツコレクション)は、Astro で記事などのコンテンツをまとめて、型安全に管理するための仕組みです。設定ファイル(src/content.config.ts)に Zod でスキーマ(各項目の型や必須ルール)を定義し、frontmatter がその形に合っているかをビルド時に検証します。ブログやドキュメントの土台としてよく使われます。
まず押さえたいポイント
- コンテンツに「決まった形」を定義し、外れたものをビルド時に検出できる
getCollection()で取り出すとCollectionEntry型が付き、補完と型チェックが効く- Content Layer API の loader で、ローカルの Markdown/MDX も外部CMSも同じ作法で扱える
- 記事が増えるほど、frontmatter のミスによる表示崩れを防ぐ効果が大きい
どんな場面で使うか
ブログ記事、ドキュメントのページ、お知らせ一覧、製品情報など、同じ項目を持つデータが並ぶサイトで効きます。タイトル・公開日・タグといった項目をスキーマで型付けしておくと、日付の書式ミスやタイトル抜けを公開前に止められます。逆に、1枚だけの静的ページを無理にコレクションにする必要はありません。
よくある誤解や注意点
Content Collections は必須ではありません。単純なサイトなら通常のページやMarkdownだけでも作れます。ただし同じ形のコンテンツが増えるなら、型安全と検証の恩恵が大きいため使うのが定番です。ポイントは「最初にスキーマ(型)を固める」こと。ここを後回しにすると、記事が増えてから崩れの原因を探すことになりがちです。詳しくは Astro Content Collectionsとは? で整理しています。