Structure
Define content models or extract them from existing code. Your AI agent handles the work — Contentrain provides the deterministic infrastructure.
Turn hardcoded UI text, docs, and structured content into a governed, reviewable content layer. Agents do the extraction work, Contentrain enforces schema, Git review, and portable output.

AI made you faster at producing code. It did not solve what happens to the content inside that code.
Already shipped? Hardcoded UI text lives across components, pages, and docs. No translation path, no single source of truth:
This is the first wedge for Contentrain:
take the content chaos already living in your codebase and turn it into a governed, reviewable content layer.
Starting fresh? That still matters. You can begin with a real content layer from day one. But the most urgent use case is rescue, not prevention.
This is not mainly a CMS problem. It's a governance problem. AI can produce content quickly; Contentrain governs how that content gets structured, reviewed, translated, and delivered.
# Existing app? This is the main entry point
npx contentrain init
# Then tell your agent: "Scan my project and extract hardcoded UI strings"# New project? Start with structured content instead of inline strings
npx contentrain init
# Then tell your agent: "Create a hero section model with title, subtitle, and CTA"# Same content for web, docs, mobile, and backend consumers
npx contentrain generate
# Use plain JSON/Markdown or the typed SDK in TypeScript appsIf you only want to understand the product once before going deeper:
Before (hardcoded, untranslatable, unmanageable):
<h1>Build faster with AI-powered content</h1>
<p>Ship your next project in days, not weeks</p>
<button>Get started free</button>After (structured, translatable, platform-independent):
<h1>{{ t('hero.title') }}</h1>
<p>{{ t('hero.subtitle') }}</p>
<button>{{ t('cta.get_started') }}</button>Content lives in plain JSON — any platform can read it:
{
"hero.title": "Build faster with AI-powered content",
"hero.subtitle": "Ship your next project in days, not weeks",
"cta.get_started": "Get started free"
}Pick a production-ready starter with Contentrain content models, generated SDK client, and framework best practices:
| Template | Framework | Use Case |
|---|---|---|
| astro-blog | Astro | Blog / editorial |
| astro-landing | Astro | Landing page |
| next-commerce | Next.js | E-commerce |
| next-multi-surface-saas | Next.js | Marketing + app + docs |
| next-saas-dashboard | Next.js | SaaS dashboard |
| next-white-label-portal | Next.js | White-label portal |
| nuxt-admin-console | Nuxt | Admin console |
| nuxt-saas | Nuxt | SaaS marketing |
| sveltekit-editorial | SvelteKit | Editorial |
| vitepress-docs | VitePress | Documentation |
Each is a GitHub template — click "Use this template" to create your own repo.
You already use Claude Code, Cursor, or another agent and want content changes to go through a real reviewable system instead of landing as random string edits.
You need to extract strings, make i18n possible, and stop treating copy updates like grep-and-replace work.
You want plain JSON and Markdown in Git, optional SDK ergonomics, and a content layer your stack can consume directly.
Contentrain outputs plain JSON and Markdown files. Any platform that can read JSON can consume your content:
The TypeScript SDK (@contentrain/query) provides type-safe queries as a convenience — but it's optional. The content files are the product, not the SDK.
Contentrain does not ship its own model. Your agent (Claude Code, Cursor, Windsurf, or any MCP-compatible tool) is the intelligence layer. Contentrain provides deterministic MCP tools and CLI workflows that enforce consistency:
Agent decides what to extract → MCP validates and writes → Human reviews → Git commitsNo AI markup in your code. No proprietary syntax. No vendor lock-in. If you stop using Contentrain, your content files are still plain JSON in your Git repo.
Contentrain Studio
Contentrain Studio is the open-core team web layer for Contentrain: chat-first operations, role-based collaboration, branch review, media management, and CDN delivery on top of the same Git-native content model. Teams can self-host the AGPL core or use a managed Pro/Enterprise offering.