Content Outside the App Folder
Introduction
In some projects, your content files live outside the application folder where TinaCMS is installed. For example, your Next.js app might be in packages/website/ while your markdown content is in a top-level content/ folder.
TinaCMS supports this layout using the localContentPath config option. This guide walks through how to set it up.
If your content lives in a completely separate Git repository, see the Separate Content Repo guide instead.
Example Structure
Step 1: Configure localContentPath
In your tina/config.ts, set localContentPath to point at your content directory. The path is resolved relative to the tina/ config folder, not the project root.
Use an environment variable for
localContentPathsince the relative path may differ per developer depending on where they clone the repo.
Step 2: Create a tina/ Folder in the Content Directory
TinaCMS writes generated files (tina-lock.json, __generated__/ etc.) into a tina/ folder inside the content root. This folder must exist or the CLI will fail with:
Create it:
You can add a .gitkeep file to ensure it's tracked by Git:
Step 3: Set Collection Paths Relative to the Content Root
When localContentPath is set, collection path values are resolved relative to the content root — not the application folder.
For example, if your content lives at content/posts/:
Step 4: Run the Dev Server
No special CLI flags are needed. Just run from your app directory as usual:
You should see: