Skip to content
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.

Template Inheritance:

  • Base templates define shared fields
  • Specific templates inherit from base templates
  • Example: SeoBase template (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):

.sitecore/templates/MyProject/ArticlePage.yml
---
ID: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Path: /sitecore/templates/MyProject/ArticlePage
Template: Standard template
Fields:
- 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"

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");
}

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