SitecoreUmbraco
Sitecore vs Umbraco: Content Modeling Comparison
Both platforms have converged on component-based content modeling (Cross-Platform Pattern #1), but their implementation details differ.
Sitecore XM Cloud Content Modeling
Section titled “Sitecore XM Cloud Content Modeling”Template Inheritance:
- Base templates define shared fields
- Specific templates inherit from base templates
- Example:
SeoBasetemplate (meta title, meta description) inherited by all page templates
Renderings (Components):
- JSS components or SXA renderings
- Datasource-based (component instances link to content items as data sources)
- Rendering variants (one rendering, multiple display options)
Serialization:
- Sitecore CLI (SCS) — YAML-based serialization
- Items stored in source control
- Push/pull workflow between local file system and XM Cloud instance
Code Example (Sitecore Template Serialization):
---ID: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"Path: /sitecore/templates/MyProject/ArticlePageTemplate: Standard templateFields:- ID: "field-guid-here" Name: "Title" Type: "Single-Line Text"- ID: "another-field-guid" Name: "Hero Image" Type: "Image"- ID: "body-field-guid" Name: "Body" Type: "Rich Text"Umbraco Content Modeling
Section titled “Umbraco Content Modeling”Document Types vs Element Types:
- Document Types: Routable pages (e.g., Article Page, Homepage)
- Element Types: Reusable blocks used in Block List/Block Grid (e.g., Hero Block, CTA Block)
Compositions:
- Shared properties via compositions (mixins)
- Example:
SeoComposition(meta fields) applied to all page Document Types
Block List / Block Grid:
- Flexible layout systems where editors assemble Element Types into pages
- Block List: Vertical stacking of blocks
- Block Grid: Grid-based layout with rows/columns
Serialization:
- JSON-based (Umbraco Deploy) or code-first Document Types
- Umbraco Cloud includes Deploy for environment promotion
Code Example (Umbraco Document Type, Code-First):
using Umbraco.Cms.Core.Models.PublishedContent;using Umbraco.Cms.Core.Models;
[ContentType("articlePage", "Article Page", description: "Standard article page with hero and body content", icon: "icon-document")]public class ArticlePage : PublishedContentModel{ public ArticlePage(IPublishedContent content) : base(content) { }
[Property("title", "Title")] public string Title => this.Value<string>("title");
[Property("heroImage", "Hero Image")] public IPublishedContent HeroImage => this.Value<IPublishedContent>("heroImage");
[Property("bodyContent", "Body Content")] public IHtmlEncodedString BodyContent => this.Value<IHtmlEncodedString>("bodyContent");}Content Modeling Convergence
Section titled “Content Modeling Convergence”Both platforms follow the same pattern (Cross-Platform Pattern #1):
- Component-based composition (not monolithic templates)
- Inheritance/composition for shared properties
- Reusable blocks/renderings
- Separation of structure (templates/document types) and presentation (components/views)
Key Difference:
- Sitecore: More prescriptive (templates defined in Pages Builder or CLI, strongly typed)
- Umbraco: More flexible (backoffice UI for quick prototyping, code-first for control)
Research Sources: Sitecore content modeling, Umbraco content modeling, cross-platform patterns