Skip to content
Sitecore

XM Cloud Implementation Patterns

Since Sitecore doesn’t host your rendering application, you need to choose a hosting platform:

Vercel (Recommended by Sitecore)

  • Excellent Next.js support (built by Vercel)
  • Edge caching, automatic scaling
  • Simple deployment (connect GitHub repo)
  • Cost: $20-$2,000+/month depending on traffic

Azure Static Web Apps

  • Good Next.js support
  • Integrates well if you’re already on Azure
  • Cost: $0-$500+/month

Netlify, AWS Amplify

  • Similar capabilities to Vercel
  • Choose based on existing cloud relationship

Custom Node.js Hosting

  • Azure App Service, AWS ECS, Google Cloud Run
  • More control, more operational overhead

XM Cloud uses Sitecore Content Serialization (SCS) to manage templates, settings, and optionally content in version control.

SCS replaces:

  • TDS (Team Development for Sitecore): Commercial tool, discontinued, no longer works with XM Cloud
  • Unicorn: Community tool, still works with XP/XM but not recommended for XM Cloud

SCS Basics:

Items are serialized as YAML files:

/serialization/templates/ArticlePage.yml
---
ID: "110d559f-dea5-42ea-9c1c-8a5df7e70ef9"
Path: /sitecore/templates/Project/Article Page
Template: "{AB86861A-6030-46C5-B394-E8F99E8B87DB}"
SharedFields:
- ID: "{12C33F3F-86C5-43A5-AEB4-5598CEC45116}"
Value: "Article Page"
Fields:
- ID: "{A4F985D9-98B3-4B52-AAAF-4344F6E747C6}"
Name: "Title"
Type: "Single-Line Text"

Configuration (module.json):

{
"$schema": "https://sitecore.io/schemas/module.json",
"namespace": "MyProject",
"items": {
"includes": [
{
"name": "templates",
"path": "/sitecore/templates/MyProject",
"scope": "ItemAndDescendants"
},
{
"name": "content",
"path": "/sitecore/content/MyProject",
"rules": [
{
"path": "/Home",
"scope": "ItemAndChildren",
"allowedPushOperations": "createUpdateAndDelete"
}
]
}
]
}
}

Common CLI commands:

Terminal window
# Pull items from XM Cloud to local
dotnet sitecore ser pull
# Push local items to XM Cloud
dotnet sitecore ser push
# Watch for changes and auto-sync
dotnet sitecore ser watch

Using Deploy App (Built-In):

  1. Connect your GitHub or Azure DevOps repo to XM Cloud
  2. Sitecore generates a default GitHub Actions workflow
  3. Push to main branch → Deploy App builds and deploys automatically

Using Custom CI/CD:

If you have existing CI/CD (Jenkins, GitLab CI, etc.), use Sitecore CLI commands in your pipeline:

# Example GitHub Actions workflow
- name: Login to XM Cloud
run: dotnet sitecore cloud login --client-id ${{ secrets.SITECORE_CLIENT_ID }} --client-secret ${{ secrets.SITECORE_CLIENT_SECRET }}
- name: Push serialized items
run: dotnet sitecore ser push
- name: Trigger XM Cloud publish
run: dotnet sitecore cloud deployment create --environment-id ${{ secrets.ENV_ID }}