Skip to content

Git-based CMS
built for Next.js

Get startedTry the demo
Read https://v2.alineacms.com/start.md and help me add Alinea to my Next.js project

Works with Claude Code, Cursor, Codex and more

All features
All features
dashboard-product
dashboard-product-dark

How Alinea differs

Like other git-based CMSs, Alinea stores content in your repository. It also publishes without a rebuild, previews drafts with one component and installs four packages.

Published content goes live without a rebuild

Faster since 2.0

Every publish is a git commit. Your running site picks up the new content right away instead of waiting for CI. Commits that only change content can skip the build, and pages can be revalidated after each publish.

  • Content syncs to your running site on every commit
  • Commits that only change content can skip the build
  • Code changes deploy as before
Set up instant publishing
A typical git-based CMS
PublishCommitWaiting for CI to rebuild the siteLive
Alinea
PublishCommitLiveCI build

Live previews with one component

Add one component to your layout and every page shows drafts while editors type. You don't need preview routes or changes to each component, and server components render the draft on the server.

app/layout.tsx
<body>
  {children}
  <cms.previews widget />
</body>
  • React Server Components
  • Your own routes and styles
  • Full-screen preview

Four packages to install

Installing Alinea adds 4 packages. The other CMSs we measured add between 206 and 954.

Packages and disk size of a clean npm install, excluding React and Next.js. Measured September 2026.

Other features

Content is stored as files in git and queried through an SQLite index that is bundled with your site.

Content in git

Every entry is a JSON file in your repository. Review, branch and roll back content like code.

Typed without codegen

Query types are inferred from your schema, so there is no generate step.

No database server

Content is indexed in SQLite and bundled with your site. The dashboard searches the same index.

Self-host or Cloud

Run the backend on your own database with one of eight drivers, or let Alinea Cloud handle it.

Docs for coding agents

The docs ship with the package as Markdown, so AI agents know the API of the installed version.

Open source

MIT licensed and developed in the open on GitHub.

From schema to published page

Each step happens in your own repository.

const BlogPost = Config.document(
  'Blog post', {
  fields: {
    title: Field.text('Title'),
    cover: Field.image('Cover'),
    body: Field.richText('Body')
  }
})

1. Model your content

Describe types and fields in TypeScript in your codebase. There are no migrations and no separate admin project.

2. Edit in the dashboard

Editors work in a dashboard generated from your schema, with drafts, previews and media.

3. Publish with git

Publishing writes a commit to your repository, and your site deploys like any other change.

Typed queries

Query content from server components. Results are typed from your schema, so your editor autocompletes fields and TypeScript reports mistakes.

  • Autocomplete for every field and type
  • Select exactly the shape your component needs
  • Follow links between entries in a single query
Read the query docs
app/blog/[slug]/page.tsx
export default async function Post({params}) {
  const {slug} = await params
  const post = await cms.get({
    type: BlogPost,
    url: `/blog/${slug}`,
    select: {
      title: BlogPost.title,
      publishDate: BlogPost.publishDate,
      body: BlogPost.body
    }
  })
  return <Article {...post} />
}
const post: {  title: string  publishDate: string  body: TextDoc}

Self-host or use Alinea Cloud

Self-host

Free, MIT licensed

The dashboard ships with your app and deploys wherever Next.js runs. You stay in control of authentication and access.

  • Full control over data and access
  • Any host that runs Next.js

Alinea Cloud

Free while in beta

Connect your GitHub repository and invite editors. Cloud handles sign-in and commits published content back to your repository.

  • Sign-in for editors included
  • Publishing straight to GitHub
vetra

Start from Vetra

Vetra is a Next.js template with Alinea already set up.

  • Blog with archive

  • Categories and authors

  • Built with Next.js and Tailwind CSS

Frequently asked questions

Ask other questions on GitHub.

Do I need a database?

Not for your content. It is stored as JSON files in your repository, and Alinea builds an SQLite index from those files for querying and search. With Alinea Cloud there is no database to run at all. If you self-host the backend, you do need one for the dashboard's users and roles and for uploads until they are committed: PostgreSQL, MySQL, SQLite or PGlite.

Does it work with the App Router and server components?

Yes. Alinea is built for the Next.js App Router. You query content directly in server components, and live previews render drafts on the server as editors type.

Can I host it somewhere other than Vercel?

Yes. The dashboard ships with your Next.js app and deploys wherever Next.js runs. Run the backend yourself on your own database, or let Alinea Cloud handle sign-in and publishing.

Do content edits trigger a rebuild?

They do not have to. Every publish is a git commit and your site picks up the new content without waiting for a build. Content-only commits can skip the rebuild, and static pages can be revalidated after each publish. See instant publishing.

How do I upgrade from 1.x?

Follow the upgrade guide, which walks through moving an existing 1.x project to 2.0.

Add Alinea to your project

Run the init command in a Next.js project to set it up. Alinea is open source and MIT licensed.

Get started