Summary
- Explore a new and improved content layer for Astro.
- Improve the current experience of loading/defining data into content collections
- Improve the current experience of querying data from content collections
Background & Motivation
Content Collections are a key primitive that brings people to Astro. Content Collections make it easy to work with local content (MD, MDX, Markdoc, etc) inside of your Astro project. They give you structure (src/content/[collection-name]/*), schema validation for frontmatter, and querying APIs.
Goals
- Explore a new and improved content layer for Astro.
- Improve the current experience of loading/defining data into content collections
- Improve the current experience of querying data from content collections
Example
// A folder full of Markdown (MDX) files
defineCollection({
name: 'blog',
data: glob('./content/blog/*.mdx'),
});
// A single file containing an array of objects
defineCollection({
name: 'authors',
data: file('./content/authors.json'),
});
// Remote data, loaded with a custom npm package
defineCollection({
name: 'articles',
data: storyblokLoader({startsWith: 'articles/posts'}),
});
// Custom data, loaded from anywhere you'd like
defineCollection({
name: 'my-custom-collection',
data: () => { /* ... */ },
});
Summary
Background & Motivation
Content Collections are a key primitive that brings people to Astro. Content Collections make it easy to work with local content (MD, MDX, Markdoc, etc) inside of your Astro project. They give you structure (
src/content/[collection-name]/*), schema validation for frontmatter, and querying APIs.Goals
Example