CMS 13 Preview 3: Key changes
If you've been following along with the CMS 13 preview, you've likely worked through the initial upgrade path covered in my previous post. Preview 3 brings us another step closer to a production-ready release. Based on feedback on Preview 2 we have made changes so that Content Manager and Optimizely Graph are no longer enabled by default.
It is however important to understand that: while these features are opt-in from a technical perspective, Optimizely Graph is effectively required if you want to unlock the full potential of CMS 13. In practice, we expect most customers to adopt Graph as part of their CMS 13 journey, since many of the platform’s most meaningful innovations depend on it. Let’s unpack what that means.
What's New in Preview 3?
Preview 3 includes the usual improvements and bug fixes, but I wont highlight them here but instead refer to the official release notes. What is worth discussing is the change in having Optimizely Graph and Content Manager enabled through opt in.
Why Optimizely Graph Matters
Several of CMS 13's new features are built on top of Optimizely Graph. Let´s look at some of the bigger examples:
-
Content Manager: The new editorial experience relies on Graph for content discoverability.
-
External Content: Integrating content from external sources outside of CMS requires Graph's indexing capabilities
-
Content Binding: The approach to rendering external content leverages Graph's structured queries
-
RAG for Opal: Graph allows Opal to “see” and “understand” your content. Allowing Opal to query all content, understand tone of voice, and more.
In other words, if you're planning to use any of the new CMS 13 features that differentiate it from CMS 12, you need Optimizely Graph - they wont work without it. At Optimizely, we view Optimizely Graph as a mandatory and foundational component for using CMS 13 to its full potential. Running CMS 13 without Optimizely Graph will be very close to running CMS 12 compiled for .NET 10 with a smaller subset of new features. Over time, Optimizely Graph will increase in usage in CMS 13 and beyond since it is at the very center of functionality that we build.
For organizations that truly cannot adopt Graph, it’s worth carefully evaluating the value of moving to CMS 13 in the near term, since several of the headline innovations will not be available without it.
Is Optimizely Graph required?
Let's be pragmatic about this. You can run CMS 13 without Graph in some scenarios, for example:
-
You're maintaining a CMS 12 codebase with minimal changes during migration
-
You're in the early phases of migration and haven't yet enabled the new features
One example is customers with strict on-prem or data residency requirements where introducing a cloud service is not feasible. That said, many customers who run CMS “on-prem” Today are already operating in hybrid models (self-hosted in cloud environments, partner-hosted infrastructure, etc.), and in those cases Graph is often still a viable option.
If you're upgrading to CMS 13 for its new capabilities, then its likely that you will be adopting Graph. The question probably isn't "if" but rather "when" in your migration timeline.
Enabling Content Manager and Optimizely Graph
Since you'll almost certainly need these features, or at least want to try them out, here's the straightforward opt-in process:
Step 1: Add the NuGet Packages
Reference the appropriate packages in your project:
dotnet add package EPiServer.Cms.UI.ContentManager
dotnet add package Optimizely.Graph.Cms
Step 2: Update Your Startup Configuration
In your Startup.cs (or wherever you're configuring services in your Alloy-based project), add the following calls to your service registration:
public void ConfigureServices(IServiceCollection services)
{
// ... your existing service configuration
services.AddContentGraph();
services.AddContentManager();
// ... rest of your configuration
}
Notice the order matters here: AddContentGraph() should come before AddContentManager() since Content Manager depends on Graph's infrastructure.
My perspective on Graph Adoption
Here's what I am thinking with this change on Opt In approach: Graph isn't a nice-to-have feature add-on—it's a corner stone for content delivery in the Optimizely ecosystem.
-
Content Manager gives editors a performant content discovery experience powered by Graph queries
-
External Content lets you unify disparate content sources through Graph's indexing
-
Content Binding enables developers to work with strongly-typed content models backed by Graph's schema
These aren't isolated features; they are puzzle pieces that tell a joint story. And Graph is the connective tissue that bind them together.
If you're building greenfield projects or undertaking significant modernization efforts, I think that you should embrace Graph from day one. Trying to retrofit it later when you want to adopt Content Manager or External Content will be more painful than including it from the start.
So, Alloy Template
If you're working with the Alloy template as a learning tool or project foundation, you'll want to enable both features to get the full editorial experience. The Alloy template shows Content Manager's capabilities, and Graph powers both its search functionality and the new content delivery patterns.
This is actually a good learning environment to understand how Graph integrates with the platform before you build your production architecture.
As always, remember that Preview 3 is not production-ready. Use it for evaluation, experimentation, and preparation—but keep your production sites on CMS 12 until the official CMS 13 release.
Happy coding!
Comments