Sitecore Content Migration Part 2: Why Sitecore Commander

Created: 11 Jun 2026, last update: 11 Jun 2026

Sitecore Content Migration Part 2: Why Sitecore Commander Makes Your Migration Manageable

In part 1 of this series, we looked at the visual reality of complex layout migrations. We saw how pages break in the Page Builder because of corrupt placeholder paths, floating components, and cryptic rendering parameters inside the raw layout XML. Markeplace app Layout Manager Pro helps with analysing the layout.

Once you understand that visual puzzle, the next big challenge appears: how do you execute this migration operationally? A serious migration to a platform like SitecoreAI is not just a handful of manual API calls or one-off Postman scripts. It requires a controlled, repeatable, and auditable workflow. Because I needed structure and reusability in my own projects, I built a framework to solve this: Sitecore Commander.

When you build a custom content migration, it is usually for a one-time project. This means developers often care less about code reusability or clean architecture. In those scenarios, a framework like Sitecore Commander helps you start fast with a solid foundation.

In this second part, I will explain why a structured framework makes the difference between operational chaos and a successful migration.

The Landscape:Why Standard Migration Tools Can Fall Short
When migrating content to a modern Sitecore platform, you generally have a few options:
• A Custom Tailor-Made Migrator: Fully customized to your requirements using the API, PowerShell scripts for layout manipulation (XML/JSON). This gives you total control over things like rendering parameters, but it takes a lot of time and effort to build from scratch.
• AI-Powered Tooling (like Sitecore Pathway): Great for moving standard XM or XP sites to SitecoreAI. It solves field mapping well, but it has limited capabilities for complex layout migrations or very specific custom configurations.
• AI Page-Based Tools: Useful for quick, visual conversions on a single-page level, but not suitable for bulk content.
• String Replacements on Serialized Items: Fast and easy to start with, but very limited.

Every method has its own requirements and limitations. Tools like Pathway solve a large part of the journey, but they get stuck when you have unique, client-specific component mappings or complex, logic-based transformations.
If you want absolute control over layout structures, dynamic placeholders, datasource resolution, and rendering parameters in bulk, a custom migrator is often the only logical choice. That is exactly where Sitecore Commander fits in.

What is Sitecore Commander?

Sitecore Commander is a .NET C# automation toolkit for Sitecore. It is designed for developers and technical content teams who need robust API automation in real-world projects.
Instead of sending isolated requests in a GraphQL Playground, Sitecore Commander helps you build reusable command chains that execute complex API steps consistently. The framework fits into a productive developer workflow:
 • Strong Typing and Refactoring: No messy, loose JavaScript or PowerShell scripts, but compile-time safety in C#.
 • Advanced Debugging: Visual Studio provides deep debugging capabilities for complex data streams, while Visual Studio Code allows for fast iterations.
 • AI-Ready Architecture: The repository includes an AI folder and a .github/skills folder with detailed documentation (SKILL.md) about layout XML and placeholder mechanics. You can
feed this directly into GitHub Copilot or Claude as context. This way, the AI understands exactly how the Sitecore architecture works and generates reliable code that fits the framework.

Out of the box, the framework supports the Sitecore Agent API (REST), Authoring and Edge API (GraphQL), and ItemService. It also includes transformation helpers for WordPress XML, Content Hub, and Bynder DAM.

AI is Not a Replacement for Migration Design
With the rise of generative AI, building a migration script has changed completely. Where a script used to be a few hundred lines of handwritten code, you can now generate thousands of lines of code for complex transformations using the right prompts.
AI is fantastic for quickly generating a workflow goal or a specific mapping table, but you need a solid execution layer to run that code safely. Sitecore Commander acts as that guardrail. It enforces structure so that the logic generated by AI runs within safe, controlled boundaries.

Why Not Just Start From Scratch? (The Pitfalls)
Starting with a blank script in an empty console seems attractive, but with larger migrations (thousands of items, multiple languages, and complex components), you will run into these technical walls:
• Missing Pagination: API calls will silently fetch incomplete datasets.
• Unexpected API Limits: GraphQL complexity limits only become visible when your script crashes halfway through a bulk run.
• Inconsistent Error Handling: Retry and error handling differ per ad-hoc script, which pollutes your target database with incomplete data.
• Wasted Time on Basics: You spend too much time on basic plumbing like API authentication, configuration management, and baseline helper methods. For a migration tool that you throw away after the project, this is a waste of time.

Sitecore Commander removes this risk by providing robust, reusable API wrappers that handle pagination, batch processing, and limit-aware API patterns automatically. It also encourages explicit prechecks before mutations and clear verification steps afterward.

Sitecore Commander as an Analysis Tool (Before the First Write)
What makes Sitecore Commander valuable to me in practice is that it works just as well as an analysis tool as it does as a migration engine.
Content migration is rarely complex when it only involves a title, a body field, or an image. The real complexity is in the structure: component splitting (translating one source component into three new target components), datasource resolution, placeholder hierarchies, and shared and final layout.

Before you execute a single Write action on the target environment, you can use Sitecore Commander to analyze the source environment. You can write a read-only flow that maps the entire structure and reports potential bottlenecks beforehand, such as missing datasources, datasources in unexpected places, links to external websites, or simply statistics like component occurrence. This allows you to make explicit migration decisions based on real data instead of making guesses during coding.

Conclusion and Next Step
In part 1, we established why pages break visually due to the complexity under the hood of the layout XML. In this second part, we discussed the solution to operational chaos.
Sitecore Commander is not a magic wand that does all the work for you, but it provides the technical foundation needed to run migrations safely, predictably, and consistently. It helps you analyze first and mutate second. That is the difference between a nice demo and a completed migration.

Want to check out the tool or contribute to the framework? View the full repository on GitHub:
GitHub - jbluemink/SitecoreCommander
In the next part of this series, we will dive deeper into the technical details. I will share my practical experiences, mapping scenarios, and examples for building specific migrators with Sitecore Commander.