The Sitecore community and customers are a-buzz with the prospect of Sitecore's upcoming XM Cloud product. It's not released yet, and as of the time I’m writing, I don't believe the early access program has started (even if it did, I'd imagine it would be under NDA). But across a few videos online and presentations at user groups, Sitecore has revealed some early details about XM Cloud.
Combine that with a little knowledge of Sitecore's current technology & headless SaaS CMS platforms and we can make some informed guesses about Sitecore XM Cloud.
Please note - the product isn't released, I have no first-hand experience with the platform (even if I did - NDA) and I'm only drawing from publicly available sources.
In the dark ages we had SaaB (Software as a Burden). Sitecore shifted away from this many years ago, adopting a PaaS (Platform as a Service) model, and today Sitecore has shifted further still into Software as a Service (SaaS).
But what is Software as a Service?
"Software as a service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is also known as "on-demand software" and Web-based/Web-hosted software.”
The switch to a SaaS model has numerous benefits:
Leaving big lift-and-shift upgrades behind and being replaced with automatic, frequent seamless incremental upgrades will be a huge shift for Sitecore.
Being a headless CMS platform just makes the most sense and Sitecore has already indicated that this is what we're getting. A headless CMS creates a clean separation of responsibilities between the SaaS CMS platform (Sitecore) and the website consuming the content via services (You).
It's very difficult to imagine traditional content delivery servers with their essentially infinite customizations (your website) and compiled code being viable in a SaaS model.
In lower-end headless CMS platforms such as Contentful or Kentico Kontent you can see that they shy away completely from controlling the "content delivery" servers and instead focus on content modelling and APIs.
Sitecore's existing Headless Services are extremely powerful, and I believe with XM Cloud leveraging these services, it is poised to push the limits of what a headless CMS can do.
Sitecore Headless Services has two primary aspects for accessing data: Layout Service & GraphQL. The Layout Service allows sophisticated pages created by authors using Experience Editor (basically infinite possibilities) to be returned in a headless format. GraphQL allows content to be queried at a more granular level (i.e. 5 press releases, tagged with 'investment') in a headless format.
With the separation of CMS and the front-end, I expect we'll be using these services exclusively.
From a feature perspective, Sitecore XM Cloud is an entirely new product, and at this stage, we don't know exactly what it will offer. But that said, as a baseline expect something akin to what we're getting with Sitecore XM (Experience Manager), not Sitecore XP. We've outlined the differences between Sitecore XM vs XP here in quite a lot of detail here.
One thing to consider is if your content delivery servers were doing any sort of additional processing, customizations, proxying API calls, etc. you'll need to be prepared to retool around that.
As we migrate to a SaaS platform, it goes without saying that we're all hoping to enjoy a simpler process around upgrades. I imagine some migrations will involve no effort while others still may involve some critical evaluation - but overall much less work.
It's a basic give and take - the more we can customize, the less automatic I'd expect upgrades to be. So it will all be about finding that balance.
It's also very worth acknowledging that tools like Sitecore CDP, Sitecore Personalize & Sitecore Content Hub are already SaaS platforms where incremental and major upgrades are happening. So those are major parts of the potential SaaS stack that are already being handled.
Additionally, being headless and having the separation of the Front-End Delivery Server from Sitecore XM, you can see a path to simpler upgrades because XM and your front-end can be upgraded independently from each other.
Speaking of Next.js, I think this is a safe bet to be the leading framework for XM Cloud.
Being headless, you could use _anything_ to query Sitecore and display the data. But Next.js is the latest and greatest web framework that Sitecore actively supports.
Sitecore's presentations regarding XM Cloud and modernizing tech stacks frequently reference Next.js and refer to its features such as static site generation (SSG) and server-side rendering (SSR). Next.js is based on React - which there is already lots of support for. Sitecore has forged a partnership with Vercel - the creators of Next.js - for hosting Next.js based sites.
Even if you're not thinking of XM Cloud, shifting your web stack to use Next.js has lots of benefits.
For the front-end development server (FEDS) we can use whatever we like. Sticking with React (Next.js), Angular or Vue will get us the most compatibility with Sitecore's existing Headless Services modules. You might also use .NET Core to develop a "Rendering Host" that consumes the Headless Services. For my money, I'll stick with React / Next.js & TypeScript.
There could be a limited role for traditional ASP.NET in customizing XM Cloud - but as a SaaS service, I don't know if we can or even should be able to customize it. I'd rather not. So we'll see. :D
I don't see any use case for ASP.NET MVC though, as we're removing the traditional delivery servers.
With XM Cloud being a SaaS platform we should anticipate being able to customize it very minimally.
For example, I don't think we could install a module that adds new pipelines, installs new DLLs, installs items in the Core database, adds buttons to the ribbons and context menus - that sort of thing. That could easily introduce elements that break a SaaS system, introduce bad/uncontrolled code and compromise future upgrades.
But we'll see.
Sitecore has already released videos showing a SaaS tool used to create environments and manage deployments. How much this replaces traditional build and release pipelines (i.e. Azure DevOps) is not known. But it's very nice to see that this is integrated.
Sitecore has spoken about the inclusion of Experience Edge as part of the XM Cloud stack. Experience Edge is already available and we're using it in a couple recent projects.
I think Experience Edge has a high-performance, interactive proxy layer to access your published content. It's what you can publish your headless content to. Your front-end delivery server will query Experience Edge directly. It can respond to GraphQL queries and cache Layout Service (from the Sitecore Headless Services).
Currently, you can build websites leveraging Sitecore Headless Services without Experience Edge, but it sounds like Experience Edge will be a core part of the XM Cloud stack.
In the demos shown so far, Sitecore CLI is leveraged when managing the instances and deployments. As we're consolidating into a platform, I'm thinking that Sitecore Serialization will be the only (or primary) method for Sitecore item serialization.
For customers who want to be XM Cloud-ready Fishtank is building our development environments around Sitecore XM and leveraging Docker. We're using Sitecore CLI, Sitecore XM, Headless Services, Next.js, PowerShell and very-limited Sitecore customizations.
It's difficult to imagine individual developers having their own SaaS XM Cloud environments. That would be expensive.
Back in the day (over 10 years ago) it was common to have a shared Sitecore development environment with one main server that everyone is working against. We could see a form of that as well.
With Sitecore embracing Docker, my expectation is that eventually Sitecore will be providing starter kit compose files specifically targeted at creating local XM Cloud-friendly developer environments.
I really love Sitecore SXA. Unfortunately, SXA has never properly been implemented to use with Sitecore's Headless stack. The OOTB components are MVC only and the differences between rendering types don't allow for a straight port.
We still install SXA into our Headless environments (some tweaks are required) to take advantage of the default site structure and management tools.
SXA is such an awesome piece of software, I expect we'll see a retooled version of it to leverage Sitecore's Headless Services in XM Cloud. If multiple front-end languages are supported (i.e. React, Angular), I expect we'll see a scaled-back version of SXA's existing components. If I had my wish, we'd consolidate around Next.js / React for the version of SXA.
I feel like we know enough to be excited. Sitecore XM is an absolutely rock-solid CMS platform. And the idea that an organization could leverage it as a SaaS product, used in concert with Sitecore's Headless Services could be a huge step forward within the CMS space. There are a lot of unknowns but Sitecore undoubtedly has plenty of amazing features to come. For now (for the brave), let's happily plan around the educated guesses we can make and early information that's available.
Learn everything you need to know about Customer Data Platforms (CDPs).
Explore how you can use a CDP to drive revenue through unforgettable customer experiences and unparalleled omni-channel data collection in our engaging and comprehensive webinar.