Content in git
Every entry is a JSON file in your repository. Review, branch and roll back content like code.
Alinea gives your editors a dashboard with a content tree, live previews, history, translations and a media library, and gives you typed content stored in git.
Alinea 2.0
Entries are organized in a tree that follows the structure of your site. Sections with many children open on an overview instead: a table or cards with the columns, filters and sort orders you define in your schema.
Drag entries to reorder them or move them elsewhere
Columns, filters and sort options from your schema
Large sections open on their overview, their tree stays collapsed


The page you are editing renders next to the form and updates as you type, before anything is saved. Previews run on Next.js draft mode, so they show your own pages rendered by your own server components.
Updates on every change, without saving
Preview drafts before they are published
Follows your own routes and layouts


List fields let editors compose a page from the blocks you define, like a hero, a text section or a product grid. Every block type is part of your schema, so the content you query is typed too.
Add, reorder, copy and fold blocks
Every block type is defined in your schema
The preview shows the page as it is built


Each publish is a commit to your repository, so every entry keeps its earlier versions. The history panel lists who published what and when. Open an earlier version to see it, or start a new draft from it.
Who changed what, and when
Start a draft from any earlier version
Review content changes like code, in git


Translate whole pages per locale, with each language in its own tree, or keep every locale of a value together in a single field with Field.localiser. Editors switch languages from the header and see which pages still need a translation.
Translated roots with a page per locale
Per-field translations with fallbacks
Shared fields stay the same in every locale


Editors upload images and files and organize them in folders. Images get a focal point, a blurred placeholder and their dimensions, and can be cropped and scaled down before they are uploaded. Links point to the media entry, so moving or renaming a file does not break them.
Crop, rotate and scale images while uploading
PDFs are compressed and previewed by their first page
Moved and renamed files keep their old URLs


Decide who can create, edit, publish or upload, down to a workspace, root, type, field, entry or locale. Editors see the dashboard their role allows, and during development you can view it as any role.
Rules per workspace, root, type, field, entry and locale
Combine several roles on one user
Manage users in your own backend or in Alinea Cloud


Find any page, entry or file with ⌘K. Search runs on the same SQLite index your site queries, so results show as you type and include the text of the fields you mark as searchable.
Search across workspaces, roots and media
Full text search in the fields you choose
Results as cards or in a list


Every entry shows which pages link to it, so editors know what a change or a removal affects. Renamed and moved pages keep their old URLs as aliases, so links from elsewhere keep working.
See what links to an entry before you remove it
Old URLs redirect to the new ones
References in other languages are listed too


Add custom fields, panels and overview actions to the dashboard with the same accessible React components it is built from, exported from alinea/components.
Custom fields and views in React
Built on React Aria, accessible by default
Overview actions such as an export button


Every entry is a JSON file in your repository. Review, branch and roll back content like code.
Query types are inferred from your schema, so there is no generate step.
Content is indexed in SQLite and bundled with your site. Pages query it without a network roundtrip.
Published content goes live on the next request, no build or redeploy has to finish first.
Keyboard navigation, focus management and screen reader support throughout.
Rewrite changes before they are committed, or revalidate, notify and deploy after.
The docs ship with the package as Markdown, so AI agents know the API of the installed version.
Run the backend on your own database, or let Alinea Cloud handle sign-in, media and publishing.
MIT licensed and developed in the open on GitHub.
Run the init command in your Next.js app, it sets up the config, the dashboard route and an example schema.