Why selection fails
Most headless CMS selections fail for one of three reasons: the team picks based on a 20-minute vendor demo, the evaluation ignores the people who'll actually use the system, or the pricing comparison stops at license cost and misses implementation plus maintenance.
This framework solves all three.
The five criteria
1. Content modeling flexibility
Can the CMS express your actual content model — not a sanitized version? Test with the hardest content type you have: a case study with nested media, a product page with variants, a localized event with per-region fields. If you have to flatten the model to fit the tool, keep looking.
2. Non-technical editor UX
The system's users are marketers, editors, and legal reviewers — not developers. Score editor UX with real editors, not stakeholders. Have them build the same page in each candidate, timed. Record blockers.
3. Localization support
If you publish in more than one language or market, localization is a first-class requirement, not a plugin. Look for field-level translation, fallback logic per locale, workflow-aware approval by locale, and a translation-memory integration or open API.
4. Integration surface
Every marketing site integrates with 10–20 systems: CRM, marketing automation, analytics, search, personalization, DAM, commerce, and increasingly an LLM layer. Score the CMS on webhook quality, API stability, and the realism of its third-party connector ecosystem. Open APIs beat proprietary plugin marketplaces for long-term flexibility.
5. Total cost of ownership over 3 years
Licensing + implementation (build + content migration + editor training) + ongoing maintenance. Anything shorter than a 3-year view will bias toward cheap-licensing tools that cost more to maintain.
A worked example — mid-market B2B
Client: 400-page marketing site, 3 locales, Salesforce + Marketo + Algolia + Cloudinary.
Shortlist: Sanity, Contentful, Storyblok.
- Modeling: Sanity wins — code-first schema definition scales with complex models.
- Editor UX: Storyblok wins — visual editor is the most forgiving for non-technical editors.
- Localization: Contentful wins — field-level locale controls and workflow are best-in-class.
- Integration surface: All three clear the bar; Sanity's GROQ query language pulls ahead for custom integration work.
- 3-year TCO: Storyblok lowest, Contentful highest; Sanity middle with the caveat that developer time shifts from configuration to schema management.
Decision in this case: Sanity, because the client's content model complexity (not licensing) dominated the selection. On a simpler site, the same framework would push toward Storyblok.
The rubric we publish
We publish the scoring rubric with every selection engagement. Clients can audit the weights, replay the evaluation, and fork the approach for future platform decisions. If a selection doesn't come with a rubric, you're buying an opinion, not a decision.
Sources & further reading
- NUUN Software & Product Development service pillar
- Marketing websites & headless CMS service page
- Jamstack.org — https://jamstack.org/
- Gartner Digital Experience Platform reports — https://www.gartner.com/
- MACH Alliance — https://machalliance.org/