Skip to content

PATTERN Cited by 1 source

Static content pages via CMS over hand-coded templates

Pattern

For static and semi-static pages (awareness campaigns, category inspiration pages, informational pages like "About Sustainability"), author and publish them through a CMS (ideally a headless one) rather than as hand-coded HTML/CSS templates checked into the application codebase.

The failure mode this replaces

In a hand-coded-template shape:

  • Each new page is a ticket → branch → PR → deploy engineering project. Non-technical stakeholders cannot ship content without engineering involvement.
  • Even small content changes (copy edits, image swaps) go through the engineering release train.
  • Localisation is implemented per-page with custom conditional rendering or parallel template files per language, which scales poorly across 25-market operations.
  • Page-level analytics, A/B testing, and design-system compliance are each solved per-template rather than as platform capabilities.

What the pattern delivers

  • Non-technical stakeholders own the workflow end-to-end. Page creation, content upload, and publish happen in the CMS, not in Git.
  • Engineering involvement becomes a one-time cost per content type. Introducing a new module (a new kind of block on a page) requires engineering; using it on hundreds of pages afterward does not.
  • Localisation is a CMS concern (multi-language entry-types, per-market variants) rather than a codebase concern.
  • Platform capabilities apply uniformly — design system, A/B testing, performance gates, observability, consent, monitoring all live in the delivery runtime, not per-template.

Canonical wiki instance — Zalando Landing Pages

(Source: sources/2022-09-28-zalando-more-editorial-content-please)

Zalando's Landing Pages stack is the canonical wiki instance: campaign/sustainability/category-inspiration pages authored in Contentful and delivered by the Interface Framework runtime. Quantified impact: time-to-go-live 2 days → 4 hours; a previously-required 2-week lead time removed entirely; +82% YoY publication volume.

When not to apply

  • Pages that are genuinely dynamic (pricing, recommendations, live inventory) are not a CMS workload — they belong in the application's regular data path.
  • For small single-surface sites where engineering and content-authoring are the same people, a hand-coded template can be simpler than introducing a CMS.
Last updated · 550 distilled / 1,221 read