PATTERN Cited by 1 source
Headless CMS for editorial content¶
Pattern¶
Front editorial and semi-static surfaces with a headless CMS — delegate authoring, content model, validation, localisation, and collaboration to the CMS, and keep rendering in the company's own delivery runtime (micro-frontends, SSR, native apps, etc.).
When to use¶
- Editorial content is authored and maintained by non-technical stakeholders (brand managers, copywriters, category teams) who should be able to publish without engineering involvement.
- Content needs to be delivered across multiple surfaces (web + native apps + email + kiosks) from a single source.
- The company has opinionated delivery infrastructure (design system, A/B testing, observability, performance gates) that it does not want a CMS to override or duplicate.
- Multi-language support is a hard requirement; the company operates in many markets.
When not to use¶
- Content is mostly programmatic (pricing, inventory, recommendations) rather than editorial.
- The product is a single-surface site with no cross-surface content sharing.
- The company has no delivery infrastructure and is happy for the CMS to own rendering too — a rendering-coupled CMS (WordPress, etc.) may be a simpler fit.
Canonical wiki instance — Zalando Landing Pages¶
(Source: sources/2022-09-28-zalando-more-editorial-content-please)
- CMS: Contentful (SaaS, headless).
- Delivery runtime: Rendering Engine (Node.js + browser runtime of the Interface Framework).
- Aggregation tier: FSA GraphQL, consuming CMS data through an internal Contentful proxy so the aggregation layer calls only Zalando-operated APIs (patterns/proxy-layer-for-external-saas).
- Authoring UX: drag-and-drop module composition (patterns/drag-and-drop-cms-layout) inside Contentful.
Companion patterns¶
- patterns/proxy-layer-for-external-saas — isolate the CMS behind an internal proxy so the aggregation layer does not directly depend on an external SaaS.
- patterns/drag-and-drop-cms-layout — the authoring UX shape that takes full advantage of modular entry types.
- patterns/inner-sourced-module-extension — let other teams contribute new content types as self-contained additions.
- patterns/cross-surface-enrichment-via-internal-service — CMS stores IDs; the aggregation tier enriches with domain values from the system of record so all surfaces stay in sync.
- patterns/static-content-pages-via-cms-over-hand-coded-templates — the broader umbrella: take static/semi-static pages out of the codebase and into a CMS.