Skip to content

Everything editors need, in your Next.js app

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

Navigation

A content tree with overviews

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

Configure overviews
dashboard-overview
dashboard-overview-dark
Editing

Live preview

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

Set up live previews
dashboard-product
dashboard-product-dark
Editing

Pages built from blocks

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

Read about list fields
dashboard-home-builder
dashboard-home-builder-dark
Git

Every version in history

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

How publishing works
dashboard-history
dashboard-history-dark
Content

Translations

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

Set up translations
dashboard-translations
dashboard-translations-dark
Content

A media library

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

Read about media
dashboard-media
dashboard-media-dark
Teams

Roles and permissions

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

Define roles
dashboard-roles
dashboard-roles-dark
Content

Backlinks and URL aliases

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

Renamed and moved pages
dashboard-references
dashboard-references-dark
Developers

Your own views and fields

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

Browse the components
dashboard-stock
dashboard-stock-dark

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. Pages query it without a network roundtrip.

Publish without a rebuild

Published content goes live on the next request, no build or redeploy has to finish first.

An accessible dashboard

Keyboard navigation, focus management and screen reader support throughout.

Commit hooks

Rewrite changes before they are committed, or revalidate, notify and deploy after.

Docs for coding agents

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

Self-host or Cloud

Run the backend on your own database, or let Alinea Cloud handle sign-in, media and publishing.

Open source

MIT licensed and developed in the open on GitHub.

Add Alinea to your project

Run the init command in your Next.js app, it sets up the config, the dashboard route and an example schema.

Read the quickstart