Journal — 24.08.2026
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.
/ 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
/ Visual schema
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
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.
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[]
/ 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
Journal — 24.08.2026
A cairn is a promise between strangers: someone came this way, and this is the path. We built a CMS on the same idea.
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.
/ Schema map
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.
/ Content branches
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.
Selected · production
Every project starts with a production dataset. Public reads use it by default.
/ 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.