Visual modelling · Typed delivery · Live previewThe stone remembers its structure

A content model
you can see.

/ What is Cairn

Cairn is a visual CMS for structured content. Build the model in the Dashboard, give editors a workspace shaped around it, and connect your own frontend through clean APIs and generated TypeScript.

/ Example model5 fields

titlestring
slugSlug
heroAsset
authorRef<Author>

/ Visual schema

Stack the fields.
The types follow.

Build document types, references, reusable blocks, field groups, validation and localization in the Dashboard. Publish the model when it is ready, then pull the same structure into TypeScript with cairn typegen.

Edit the example model

/ Typed delivery

Model visually.
Build with types.

cairn typegen writes TypeScript interfaces from your published schema. Use them with @cairn-cms/client for published reads, preview content and authenticated server-side writes.

Commandcairn typegen
Outputcairn/types.ts
Read APIPublic · published-only
SDK@cairn-cms/client
article.schema5
titleText
slugSlug
heroImage
authorReference
bodyRich text
article.d.tstypegen output
export interface Article {
  title: string;
  slug: Slug;
  hero?: Asset;
  author: Ref<Author>;
  body?: PortableText[];
}
import {createClient} from '@cairn-cms/client'import type {Article} from './cairn/types' const cairn = createClient({  projectId: process.env.NEXT_PUBLIC_CAIRN_PROJECT_ID!,}) const articles = await cairn.fetch<Article>('article', {  where: {slug: 'gneiss'},  include: ['author'],}) // article.author.name  →  string// article.hero.url     →  string// article.body         →  PortableText[]
edge · fra1200 · 11 ms

Edit the draft.
See it on your site.

/ Live Preview
Open your own Next.js site in Draft Mode and see saved changes there. Your components and routes stay in control, while ordinary visitors continue reading published content.

Cairn Dashboard · example draft

155 chars · autosaved just now

Your site · preview modereading draft content

The quiet mathematics of stacked stone

A cairn is a promise between strangers: someone came this way, and this is the path. We built a CMS on the same idea.

hero · asset reference

An idea, stacked

A cairn marks a path across ground with no other markers—stones set with intent, legible to anyone who comes after. That is the shape Cairn gives your content.

Structured content, made visible

/ Schema map

See the model
as a connected system.

Cairn turns your document types and reference fields into a visual schema map. Explore the model you are actively building, inspect how types connect and catch structural problems before publishing the schema.

SourceDraft schema
NodesDocument types and fields
EdgesReference fields, including nested
ViewPan · zoom · inspect

/ Content branches

Branch the
content, not just
the code.

Fork a dataset into an independent working copy for a redesign, campaign or migration. Review what changed, then merge it into production—or delete the branch without changing production.

production
Published sourceDefaultapi.cairn.dev/v2/production
staging
Branch · IndependentPreview-readyapi.cairn.dev/v2/staging
redesign-26
Branch · In progressMerge when readyapi.cairn.dev/v2/redesign-26

Selected · production

Every project starts with a production dataset. Public reads use it by default.

Releases move as
one object.

/ Releases & webhooks
Group document snapshots into a release, choose when they publish, and notify downstream systems through signed webhooks.

Twelve document snapshots scheduled to publish together on 1 September at 09:00.

Webhook events · exampleHMAC signed

18

Field types

From rich text, media and references to localized objects and reusable blocks.

2

Content states

Draft and published content remain separate on every document.

1

Typegen Command

Pull the published schema into real TypeScript with cairn typegen.

Built for the whole content path

/ Start

Set the
first stone.