
Git-based CMS Built for Next.js
Open source headless CMS with minimal setup. Fully typed content right in your repository.
Minimal setup
Straightforward content modeling without dealing with databases and migrations.
Git based
Version controlled content in your repository. Easily branch and feature test content changes.
Fully typed
An optimized, type-safe experience for Typescript users without overcomplication.
Organize content in a clear, hierarchical structure
Editors can easily navigate, reorder, and manage pages in a way that makes sense for any project. Navigation stays simple, whether you’re editing in the dashboard or working with the API.

// Configure a CMS within minutes
const BlogPost = Config.document('Blog post', {
fields: {
title: Field.text('Title'),
body: Field.richText('Body text')
}
})
const Blog = Config.document('Blog', {
contains: [BlogPost]
})
const cms = createCMS({schema: {Blog, BlogPost}})
Describe your schema in code, get back fully typed content
Define your content schema in code and get fully typed content instantly — no generation step needed. Skip the endless form clicks and manage structure with the same workflow: branch, test, and iterate in code.
Publish with control
Work on content without publishing right away. Alinea makes it easy to manage drafts, archive old pages, and keep your workspace tidy. The workflow stays simple for everyday tasks, but gives you the structure and control needed for larger, more complex projects.

// Query content within React components
const blog = await cms.get({
type: Blog
})
const posts = await cms.find({
type: BlogPost,
select: {title: BlogPost.title, body: BlogPost.body}
// ... filter, sort, paginate, order by, etc.
})
Content is local, versioned, and deploys with your site
Access content through a developer-friendly query API. Because everything is bundled at build time, there is no need for runtime fetching or external requests.
Open source
Open source by design, Alinea gives you full control over your CMS. Use it, extend it, or contribute back.
Live Previews
See exactly what content changes look like in real time. Preview updates instantly with full support for React Server Components.
Custom Fields
Extend Alinea with your own fields. Create custom inputs with simple constructor functions. Tailored to exactly what your editors need.