A headless CMS (Contentful, Sanity, Strapi) manages content APIs for your frontend. Lamina specs product behavior in .lamina/ 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 a behavior contract helps.
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
Behavior contract 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
Headless product design vs headless CMS
Dimension
Headless CMS
Lamina
Primary job
Content storage and delivery API
Product behavior design
Layer in stack
Content / data layer
Behavior contract layer
Primary output
Content models, APIs, editorial UI
run.yaml + implement.md
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
.lamina/ in app repo
Post-build verification
Content previews
/lamina-verify on live app
Repo and stack fit
Content platform
Application repo with agent
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
implement.md 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.