NashTech Blog

Umbraco 17 LTS: The Ultimate CMS for Marketing Websites in 2026

Table of Contents

Umbraco 17 LTS (released December 5, 2025) is the most significant release in Umbraco’s recent history. Built on .NET 10 LTS, this Long-Term Support version introduces revolutionary features like load-balanced backofficeconsistent UTC date handling, the new Developer MCP for AI integration, and a completely modernized backoffice architecture.

Combined with Umbraco Engage, organizations now have a powerful platform for analytics, A/B testing, personalization, and 360° customer profiling—all integrated directly into the CMS backoffice with full Deploy support.

This document outlines how to leverage Umbraco 17 for marketing projects, with practical implementation guidance for developers and capability explanations for marketers.

What’s New in Umbraco 17 LTS

Why Umbraco 17 Matters

Umbraco 17 is not just another release—it’s a milestone LTS version that finalizes a two-year journey of modernization:

  • 3 years of support (until Q4 2028): 2 years full support + 1 year security patches
  • Direct LTS-to-LTS upgrade: Migrate from Umbraco 13 → 17 with automatic migrations
  • Future-proofed: Both Umbraco 17 and .NET 10 are LTS versions

Key Features Overview

FeatureDescription & Benefit
.NET 10 LTS FoundationMicrosoft’s latest LTS framework with improved performance, security, and C# 14 enhancements. Future-proofed until Q4 2028.
Load-Balanced BackofficeNEW! Finally, the backoffice can run across multiple servers—no more single-server bottleneck for editorial teams.
UTC Date HandlingAll system dates stored in UTC with timezone support. Consistent scheduling across global teams.
Modern BackofficeCompletely new architecture with Web Components + TypeScript. AngularJS is gone. Faster, cleaner, easier to extend.
Developer MCPModel Context Protocol integration for AI-powered development workflows.
Content Delivery MCPAI tools can read your published content safely for content-aware features.
TipTap Rich Text EditorNew open-source RTE replacing TinyMCE. Better editing experience, no license issues.
HybridCacheLayered caching system (from v15) for optimal performance.
Block-Level VariantsLanguage-specific content blocks within the same page structure.
Client CredentialsOpenID Connect for secure API authentication in headless implementations.
Umbraco Engage DeployTransfer segments, personas, journey steps, and goals between environments.

System Architecture

Architecture Overview

What’s Revolutionary in v17

1. Load-Balanced Backoffice

For the first time, the entire Umbraco application (both frontend AND backoffice) can scale horizontally:

  • Better performance for large editorial teams
  • No single point of failure
  • Simplified infrastructure
  • SignalR-based real-time updates across servers

2. Consistent UTC Date Handling

  • All dates stored in UTC
  • Built-in migration updates existing data automatically
  • New DateTime Picker with timezone selection
  • Perfect for global teams scheduling content

3. MCP (Model Context Protocol) Integration

  • Developer MCP: Full API parity with Management API for AI-assisted development
  • Content Delivery MCP: AI tools can read published content safely
  • Foundation for AI-powered editorial workflows

Umbraco Engage: The Marketing Suite

Umbraco Engage is now fully aligned with the new backoffice architecture in v17, with full Deploy support for transferring configurations between environments.

Core Capabilities

CapabilityFor MarketersFor Developers
Server-side AnalyticsReal-time dashboards, heatmaps, conversion tracking—all within Umbraco.GDPR-compliant first-party data. No third-party dependencies. API access.
A/B TestingCreate tests in CMS. Test headlines, layouts, CTAs. Real-time statistical results.Server-side variant rendering. Headless API support for SPA/React.
PersonalizationCreate personas and segments. Define rules based on behavior and demographics.Server-side rule evaluation. Content Delivery API returns personalized content.
360° ProfilingRich visitor profiles tracking interactions and journey across touchpoints.Local data storage. CRM integration via APIs. External profile data import.
Deploy Support (NEW!)Transfer segments, personas, journey steps, goals between environments.Analytics data remains safely in each environment.

Marketing Optimization Workflow

Developer Implementation Guide

Step 1: Project Setup

Create new Umbraco 17 project:

# Ensure .NET 10 SDK is installed
dotnet --version # Should be 10.x
# Create new Umbraco project with Delivery API enabled
dotnet new umbraco -n MyMarketingProject --use-delivery-api
# Navigate to project
cd MyMarketingProject
# Install Umbraco Engage
dotnet add package Umbraco.Engage
# Install Umbraco Engage Headless (for headless projects)
dotnet add package Umbraco.Engage.Headless

Step 2: Configure appsettings.json

{
"Umbraco": {
"CMS": {
"DeliveryApi": {
"Enabled": true,
"PublicAccess": true,
"ApiKey": "your-secure-api-key-here",
"Media": {
"Enabled": true
}
},
"Global": {
"TimeZone": "UTC"
}
}
}
}

Step 3: Update Program.cs

builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddEngageApiDocumentation() // Add for Umbraco Engage
.AddComposers()
.Build();

Step 4: Configure Load-Balanced Backoffice (Optional)

For enterprise deployments with multiple servers:

// Custom IServerRoleAccessor for load balancing
public class StaticServerAccessor : IServerRoleAccessor
{
public ServerRole CurrentServerRole => ServerRole.SchedulingPublisher;
}
// Register in Program.cs or via Composer
builder.Services.AddSingleton<IServerRoleAccessor, StaticServerAccessor>();
// Enable cache versioning for load balancing
builder.AddUmbraco()
.AddBackOffice()
.AddWebsite()
.SetBackofficeCacheVersioningEnabled(true) // Required for LB
.Build();

Implementation Steps

Content Delivery API Usage

Key Endpoints

EndpointDescription
GET /umbraco/delivery/api/v2/contentQuery multiple content items with filtering and pagination
GET /umbraco/delivery/api/v2/content/item/{id}Get single content item by GUID
GET /umbraco/delivery/api/v2/content/item/{path}Get content item by URL path
GET /umbraco/delivery/api/v2/mediaQuery media items

Next.js Frontend Integration

API Client Setup (lib/umbraco.ts):


// lib/umbraco.ts
const UMBRACO_URL = process.env.NEXT_PUBLIC_UMBRACO_URL;
const API_KEY = process.env.UMBRACO_API_KEY;

interface UmbracoContent {
  name: string;
  id: string;
  contentType: string;
  properties: Record<string, any>;
  cultures?: Record<string, { path: string }>;
}

export async function getContentByPath(
  path: string, 
  locale: string = 'en-US'
): Promise<UmbracoContent> {
  const response = await fetch(
    `${UMBRACO_URL}/umbraco/delivery/api/v2/content/item/${path}`,
    {
      headers: {
        'Accept-Language': locale,
        'Api-Key': API_KEY || '',
      },
      next: { revalidate: 60 } // ISR: revalidate every 60 seconds
    }
  );
  
  if (!response.ok) {
    throw new Error('Failed to fetch content');
  }
  
  return response.json();
}

export async function getContentByType(contentType: string) {
  const response = await fetch(
    `${UMBRACO_URL}/umbraco/delivery/api/v2/content?filter=contentType:${contentType}`,
    {
      headers: {
        'Api-Key': API_KEY || '',
      },
    }
  );
  
  return response.json();
}

// Preview mode support
export async function getPreviewContent(id: string) {
  const response = await fetch(
    `${UMBRACO_URL}/umbraco/delivery/api/v2/content/item/${id}`,
    {
      headers: {
        'Api-Key': API_KEY || '',
        'Preview': 'true',
      },
    }
  );
  
  return response.json();
}

Marketing Project Use Cases

1. Multi-language Marketing Campaign

Challenge: Launch a campaign targeting audiences in multiple countries with localized content.

Solution with Umbraco 17:

  • Block-Level Variants for language-specific content blocks
  • UTC date handling ensures consistent scheduling across timezones
  • Content Delivery API returns localized content via Accept-Language header
  • Umbraco Engage tracks engagement per locale

2. E-commerce Personalization

Challenge: Increase conversion rates with personalized product recommendations.

Solution with Umbraco 17:

  • Integrate Umbraco Commerce with Umbraco Engage
  • Access order history at visitor profile level
  • Create segments based on purchase history and behavior
  • A/B test offer strategies with real-time statistical analysis

3. Enterprise Content Operations

Challenge: Large editorial team (50+ editors) needs reliable performance and no single point of failure.

Solution with Umbraco 17:

  • Load-Balanced Backoffice scales horizontally
  • SignalR-based real-time updates across all servers
  • Better resilience with no single point of failure
  • Simplified infrastructure management

4. AI-Powered Content Platform

Challenge: Leverage AI tools for content creation and optimization.

Solution with Umbraco 17:

  • Developer MCP for AI-assisted development
  • Content Delivery MCP gives AI tools safe, read-only access to published content
  • Build AI-powered features like content summarization, translation, and recommendations
  • Foundation for future AI editorial workflows

Upgrade Path: From v13 to v17

Direct LTS-to-LTS Migration

Umbraco 17 supports direct upgrade from v13 with automatic migrations:

# 1. Update .NET SDK to 10.x
# 2. Update Umbraco packages
dotnet add package Umbraco.Cms --version 17.0.0
# 3. Update Umbraco.Cms.DevelopmentMode.Backoffice (for ModelsBuilder)
dotnet add package Umbraco.Cms.DevelopmentMode.Backoffice
# 4. Run migrations automatically on first start
dotnet run

Key Breaking Changes to Address

  1. Razor Runtime Compilation removed → Use Umbraco.Cms.DevelopmentMode.Backoffice package
  2. AngularJS Backoffice gone → Custom extensions need Web Components rewrite
  3. Extension Methods phased out → Use new Extension API
  4. Date/Time handling → All dates now UTC (migration automatic)

Best Practices

For Developers

  1. Leverage Load Balancing – Configure SignalR properly for distributed environments
  2. Use TypeScript Models – Generate from Swagger/OpenAPI with Orval or Hey API
  3. Implement UTC Handling – Design frontend to display dates in user’s local timezone
  4. Secure API Access – Use Client Credentials for server-side requests
  5. Explore MCP Integration – Use Developer MCP for AI-assisted development workflows

For Marketers

  1. Use Deploy for Engage – Transfer segments and personas between environments
  2. Define Clear Personas – Based on behavior patterns and business objectives
  3. A/B Test Incrementally – One variable at a time for clear insights
  4. Leverage 360° Profiling – Build comprehensive visitor journeys
  5. Schedule with Confidence – UTC handling ensures global consistency

Conclusion

Umbraco 17 LTS represents a major milestone for the platform:

  1. Enterprise-Ready – Load-balanced backoffice finally removes the editorial bottleneck
  2. Future-Proofed – .NET 10 LTS foundation with support until Q4 2028
  3. AI-Ready – MCP integration enables AI-powered development and content workflows
  4. Marketing Intelligence – Umbraco Engage with Deploy support for complete marketing suite
  5. Global Operations – UTC date handling for consistent worldwide operations
  6. Modern Architecture – New backoffice with Web Components for better performance and extensibility

Whether you’re upgrading from v13 or starting fresh, Umbraco 17 provides the stability, scalability, and features needed for modern marketing projects.

Additional Resources

Picture of Thuan Luong Hong

Thuan Luong Hong

Leave a Comment

Suggested Article

Discover more from NashTech Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading