Quickstart TanStack Start
Use Content Collections with TanStack Start
Warning
This guide is for TanStack Start version v1.121.0 and later. Versions prior to this should use the @content-collections/vinxi adapter instead of the @content-collections/vite adapter.
Install required packages:
We have to install the following packages:
@content-collections/core@content-collections/vitezod
Adjust your tsconfig.json:
We require a path alias for the generated files.
This is necessary because we will generate the files in the .content-collections/generated folder.
Modify your vite.config.ts:
Add the Content Collections plugin to your Vite config. For more details on the Vite adapter, refer to the documentation.
Add the new .content-collections directory to your project's .gitignore file — the files in this directory are always regenerated and can be safely ignored by Git.
Create a content-collections.ts file at the root of your project:
This file defines a collection named posts in the content/posts folder.
The collection will include all markdown files (**/*.md) and the schema will validate the title and summary fields.
For more information about the configuration have a look at the documentation.
Create your content files (e.g.: content/posts/hello-world.md):
You can create unlimited content files.
These files will be validated against the schema defined in the content-collections.ts file.
If the files are valid, they will be automatically added to the posts collection.
Usage in your code:
Now you can just import the allPosts collection and use it in your code.
The allPosts collection will contain all posts that are valid.
The post object will contain the title, summary and content fields as well as some meta information in the _meta field.