CONCEPT Cited by 1 source
CMS entry-type modular composition¶
Definition¶
Entry-type modular composition is a CMS content-model pattern where a top-level entry (a "page") is a thin container holding a list of references to module entries, each module entry being an instance of a pre-declared type (banner, text block, product carousel, certificate list, …) with its own schema, validation rules, and authoring form. The page's layout is an ordered list of references; rearranging the layout is a list reorder, not a content rewrite.
Properties¶
- Per-module schema. Each module type has its own declared fields and validation. A banner has headline + image + CTA; a certificate module has title + subtitle + intro + certificate-ID list. Authors get a focused form per module instead of a generic free-form editor.
- Layout edits preserve content. Because modules are referenced, not embedded, moving or removing a module does not delete its content. In Zalando's legacy tool, layout changes reset the entire page's uploaded content — the canonical failure mode this pattern is designed to eliminate (Source: sources/2022-09-28-zalando-more-editorial-content-please).
- Drag-and-drop UX maps naturally. Authors rearrange modules via a drag-and-drop list; the UI does not need to understand page-rendering semantics to be correct (patterns/drag-and-drop-cms-layout).
- Extensibility is additive. A new module type adds a new entry-type to the schema, a new form to the authoring UI, and a new renderer on the delivery side — without touching existing module types. This is the load-bearing property for inner-sourced extensibility.
Canonical wiki instance¶
Zalando's Landing Pages stack on Contentful:
- The landing page entry has a title, URL path, SEO metadata, and a reference list to module entries.
- Modules are banners, text blocks, product carousels, sustainability-certificate lists, etc.
- Content Managers drag-and-drop modules in the Contentful UI to change layout.
- New module types — e.g. the Sustainability Certificate module — are contributed by teams outside the original Landing Pages team.