A headless CMS (Contentful, Sanity, Strapi) manages content APIs for your frontend. Lamina specs product behavior in the local product graph for your coding agent. Both use headless; different layers.
Headless is overloaded. CMS vendors use it for content APIs. Lamina uses it for behavior specs without UI generation. This page is category disambiguation, not a competitive shootout. Most production apps need a content layer, an application layer, and often a behavior design layer when AI agents implement features quickly.
Common situations
Concrete cases from AI-shipping workflows. Each shows what the alternative handles and where validated graph knowledge and verification evidence help.
Marketing blog on Sanity, booking app in Next.js
Situation
Sanity delivers blog posts. Booking rules live in application code written by agents.
What Headless CMS does
CMS manages editorial content models and preview.
What Lamina adds
resolved graph knowledge for checkout holds, partner gates, cancel flows.
Takeaway
CMS for content; Lamina for interactive product rules.
Content-only marketing site
Situation
No authenticated flows, checkout, or role-specific product behavior.
What Headless CMS does
Headless CMS plus static frontend is sufficient.
What Lamina adds
Not needed until the app gains domain behavior.
Takeaway
CMS-only scope: no Lamina required.
CMS-driven product config
Situation
Cancellation policy text lives in CMS. Whether cancel is allowed given booking state is application logic.
What Headless CMS does
Stores policy copy and structured content fields.
What Lamina adds
Specs when cancel action is legal and what refund preview must show.
Takeaway
CMS holds content; Lamina holds transition rules.
Comparison
product behavior design vs headless CMS
Dimension
Headless CMS
Lamina
Primary job
Content storage and delivery API
Product behavior design
Layer in stack
Content / data layer
Transactional product graph + agent workflow
Primary output
Content models, APIs, editorial UI
Validated GraphVersion plus query projections
Writes app source?
No application logic
No application logic
Behavior spec (states, flows, permissions)
Content schema, not product flows
States, flows, permissions
Durable in-repo artifact
CMS content models and entries
Validated GraphVersion plus query projections
Post-build verification
Content previews
Independent Persona Missions with runtime evidence
Repo and stack fit
Content platform
CLI plus portable skills in any repo and stack
Best when
Marketing content, editorial workflows
App features with domain rules
When you don't need Lamina
Content-only site
No interactive product behavior
Compose with Lamina?
Feed content to frontend
Spec how app uses content in each state
Workflow
Lamina vs headless CMS: recommended workflow
Step
Headless CMS
Lamina
1
Model content in CMS
/lamina-design on app features
2
Fetch content in app
GraphVersion projection includes content usage rules
3
Preview editorial changes
/lamina-verify booking/partner flows
Worked example
Confirm cancel with refund preview. CMS may store cancellation policy text. Lamina specs the cancel flow: policy reminder, refund amount display, confirm step. Content and behavior are separate concerns in HavenStay.
No. Lamina is a product-design skill for AI coding agents, not a content API.
Can we use Contentful and Lamina together?
Yes. Common pattern: CMS for marketing content, Lamina for application behavior.
We use Strapi for product data. Do we need Lamina?
If Strapi models data but agents implement transitions incorrectly, Lamina specs behavior. CMS does not replace flow design.
Comparisons map stack layers, durable outputs, and provenance-marked legacy examples. Updated when major tools change positioning.
More comparisons
Install Lamina with your agent.
Copy the repository-matched prompt. Your agent installs the standalone CLI, adds every Lamina skill for your active agent, configures supported passive rules, checks the setup, and tells you when to start a fresh session with /lamina-init.
Skills work across coding agents. Passive setup currently supports Codex, Claude Code, and Cursor.
Cursor
Claude Code
Codex
Gemini
Pi
and more
Install manually on macOS/Linux4 shell commands
Run these in your project, then start a fresh agent session. On Windows, use the PowerShell installer in the copied agent prompt.
curl -fsSL https://github.com/aryaniyaps/lamina/releases/latest/download/install.sh | sh
npx skills add aryaniyaps/lamina --skill '*' -a <active-agent> -y