Xperience by Kentico Content Sync vs. Content Staging: Key Differences Explained
Introduction
Content Sync in Xperience by Kentico is a modern replacement for the legacy Content Staging feature found in Kentico 13 and lower. Let's diver deeper into how both tools work and review where they are different. In this blog post, I really want to focus on the differences only and nothing too technical.
Xperience by Kentico Content Sync Feature Overview
Content Sync in Xperience by Kentico is a feature that enables content editors to synchronize content items, pages, assets (images/files), and other content related data between different Xperience environments (ex: development, staging, production). It is designed to support multiple scenarios of both reusable content in the Content Hub and content in a page tree within a website channel. This functionality also recently has been expanded to support Form as well.
If you haven't seen the feature before, here is a quick preview (click/tap to enlarge):
Key Concepts
- Content Items: Structured data entities (e.g., articles, products) that can be synced.
- Sync Approach: Define what content to sync, from which source to which target environment.
- Environment pair: Typically, you set up one source and target environment (e.g., dev push to production).
- Conflict Resolution: Handles cases where content has changed in both environments.
- Media Files: Can be included in sync operations.
- Used By: Marketers. This is not a Developer focused nor code promotion tool.
How It Works
First, you select content inside the Xperience admin interface in the Content Hub, Pages, or Forms applications. An option appears to Sync, and when you confirm the action, the system tracks changes and dependencies, ensuring related items are synced together. The selected items are bundled together and sent to the target environment. The content is then processed and restored, effectively sync'ing the content.
Best Practices
- Use content sync for structured content, not for code or configuration.
- Regularly review sync logs for errors or conflicts.
- Test sync operations in a staging environment before production.
Documentation
The full documentation on the Xperience by Kentico Content sync feature is available on docs.kentico.com.
Kentico 13 Content Staging Feature Overview
Content Staging is a feature that allows marketers and developers to synchronize content, pages, and selected objects between different Kentico environments (ex: development, uat, staging, production). It is designed for traditional web projects using Kentico’s legacy Portal Engine or MVC architecture. It has been around for a very long time. In fact, staging was first released in Kentico 2.1 back in 2007. That's even before my time! I started in version 3.1a with Kentico back in 2009 (and now I feel old as I type this).
For fun, here's an old image I had hanging around my media library of the Staging feature:
Key Concepts
- Staging Tasks: Automatically created when you make changes to content or objects (and even when child objects are automatically updated). These tasks can be manually pushed to other environments.
- Supported Actions: Create, Update, Remove, Destroy (from one environment to the next).
- Supported Content: Pages, media files, custom tables, forms, and most system objects (e.g., users, roles, settings).
- Push-Based Model: Changes are pushed from the source environment to the target via the admin UI or an automatic fashion via a background scheduled task.
- Dependency Handling: Related objects and dependencies are included in staging tasks.
- Conflict Resolution: Limited; typically, the latest change overwrites the target. Whoever shoots last!
- Audit Trail: All staging actions are logged for review and troubleshooting.
How It Works
When you or the system create, modify, or remove content and/or objects, Kentico generates a staging task. A content editor or developer review and push tasks to the target environment using the Staging module (an app that is unique and away from the Pages app in its own area). Global admin level permissions are required. The system applies changes immediately, automatically, and is what we have always called "a blind overwrite".
Best Practices
- Regularly review staging logs for errors or conflicts.
- Avoid using staging for code deployments; use it only for content and configuration.
- Test sync operations in a staging environment before production.
- Never, under any circumstances, click on the Synchronize All Tasks green button at the top of the UI.
Documentation
The full documentation on the Kentico 13 Content Staging feature is available on docs.kentico.com.
Comparison: Content Staging vs. Content Sync
Let's boil it all down into a table that shows a detailed comparison:
Feature | Supported by Content Staging in Kentico 13? | Supported by Content Sync in Xperience by Kentico? | Notes |
Page synchronization (tree/page-based) | ✅ | ✅ | XbK support since v30.8.0. Can sync page content and structure. |
Page synchronization with remove | ✅ | ❌ | If I delete a page in Stage, I can sync that into prod and the page will be removed in prod. |
Object synchronization (settings, users, etc.) | ✅ | ❌ | In XbK developers use newer CI/CD capabilities to sync and deploy objects like settings and users. |
Media file synchronization | ✅ | ✅ | If K13 Media files can be included in sync operations. In XbK assets in the Content Hub can be sync'd as well. |
Page attachment synchronization | ✅ | ❌ | XbK does not contain the page attachment feature that K13 has. This is now replaced with assets in the Content Hub. |
Content Hub content items synchronization | ❌ | ✅ | Supported since v30.5.0 (initial release of Content Sync). K13 does not contain the Content Hub feature. |
Custom Tables / Custom Table data synchronization | ✅ | ❌ | XbK does not contain the Custom Table feature that K13 has. |
Custom Module synchronization | ❌ | ❌ | Both do not support Custom Module sync. |
Forms synchronization | ✅ | ✅ | Supported since v30.9.0. Forms can be synced between environments. |
Manual push from source to target via UI | ✅ | ✅ | Content Staging and Content Sync uses a push based model (source pushes to target). |
Automated push from source to target via UI | ✅ | ❌ | XbK Content Sync requires manual steps in the admin UI at time of writing. K13 accomplished this through scheduled tasks. |
Bi-directional content staging | ✅ | ❌ | Easier to accomplish in K13. Not supported / recommended in XbK. |
Reduces complexity of synchronization | ❌ | ✅ | XbK Content Sync is targeted at marketers and is very simple to use. |
Restoration control support | ❌ | ✅ | XbK Content Sync includes a new idea of scheduling when the restoration of content will occur and marketers can control it. In K13 it is immediate and you have no control. |
In Pages, separate Folder and Page synchronization | ✅ | ❌ | XbK Content Sync requires you to sync a page to also sync a folder |
Out of the box set-up only via UI | ✅ | ❌ | K13 setup for the Content Staging done via only admin UI. XbK Content Sync requires code and configuration to enable before it shows up in the admin UI (for self-hosted). SaaS versions have alternate setup via the Xperience portal. |
Dependency resolution (related items: linked items, folders) | ✅ | ✅ | Both automatically syncs related items. |
Conflict detection and resolution | ✅ | ✅ | Preview, detect, and allows you to resolve conflicts before syncing. |
Synchronization of workflow states | ✅ | ❌ | In XbK any workflow applied on the target instance is ignored. Only set up workflow in source (it pushes published versions). |
Handling errors / retries gracefully | ❌ | ✅ | K13 Content Staging errors are hard to understand for marketers. |
Protection from shooting yourself in the foot | ❌ | ✅ | K13 Content Staging is dangerous if you are not experienced in it. XbK is simple. |
Synchronization of permissions/roles | ✅ | ❌ | In XbK this is not supported; permissions and roles must be managed separately. |
API for automation | ✅ | ✅ | API support for sync operations and automation. |
Logging and audit trail | ✅ | ❌ | K13 Staging operations are logged; audit trail available. |
Multi-environment support | ✅ | ✅ | Designed for multi-environment scenarios. |
Large Media file support | ✅ | ✅ | Both K13 and XbK support transfer of large files, however, both require you to modify configuration in code files to allow large files to be sync'd. |
X.509 authentication for security between instances | ✅ | ❌ | Recommended and supported in K13 due to legacy technology. XbK Content Sync is modernized and doesn't need X.509 |
Future enhancements planned | ❌ | ✅ | XbK Content Sync has additional features planned on the roadmap. K13 Content Staging will no longer be modified or added to. |
License required | Ultimate or Enterprise or higher | Advanced or higher | K13 not available in Basic. XbK not available in Standard. |
Conclusion
In the end, both Content Sync in Xperience by Kentico and Content Staging in legacy versions of Kentico CMS have their strengths, and the right choice depends on which platform your project is using as you cannot use both at the same time. Content Sync offers flexibility and a more modern approach, while Content Staging provides a tried-and-true method that many Kentico teams are already familiar with. If you’re still unsure about which feature is best for your scenario, or if you’re running into challenges with either one, don’t hesitate to reach out. My team at BizStream and I have been working with both tools for years, and we’d be happy to help you find the right solution.