Sitecore xConnect purging tool keeps xDB data in check
One of the crucial components of Sitecore XP’s functionality is xDB (Experience Database), which stores and manages contact and interaction data for use in analytics and personalisation. By default, data is collected and stored for all human interactions and consequently data accumulates over time. It becomes imperative to efficiently manage and clean up stale contact and interaction data to maintain performance and in some cases comply with data privacy regulations.
Migrating Sitecore solutions to docker-compose v2 – bonus gotchas
Sitecore and community repositories as local development setup examples for a while. It’s time to get “older” solutions upgraded! Luckily it’s pretty straight forward. Rob Earlam wrote an excellent post about upgrading the XM-Cloud-Introduction repo on his blog (https://robearlam.com/blog/docker-compose-v2), which will get the job done in most solutions. However, I’ve hit a few additional gotchas with some solutions that hopefully will avoid some googling or politely asking ChatGPT. Not all are specifically docker-compose v2 related, but snags we hit across teams when carrying out the upgrades.
Sitecore Identity Server with HTTPS in containers
Sitecore provide a number of examples (https://github.com/Sitecore/container-deployment) of implementations using containers via Kubernetes and docker compose. All examples utilise a reverse proxy for ingress (be it via traefik or nginx in the k8s examples) to access the cd, cm and id services. All of the examples terminate TLS at the reverse proxy. By default each service is running on port 80, with no TLS encryption between the reverse proxy and the service container . This is a common approach for container based deployments that remain in a secure LAN (ie. in cloud native deployments). However, does raise eyebrows with security teams that may not have extensive in these sorts of environments or with rusted on control requirements.
Sitecore Virtual Developer Day 2022
Recently I presented "The incremental path to Jamstack" at Sitecore Virtual Developer Day (VDD). This was a topic I had first presented a while back, but as always it evolved as I dug into it more and ended up building a full demo as a walkthrough.
GraphQL CORs preflight endpoint configuration
During testing for an upgrade to 10.2 of a JSS implementation recently we identified that some of our connected GQL calls were failing when running locally in the client due to CORs issues.
Missing SXA Site Manager in Sitecore 10.2
Note to future self. RTFM and use the packages you are told to install. Recently in my haste to upgrade some SIF scripts and an older implementation to 10.2 (JSS & SXA), I downloaded all the relevant resource packages from the Sitecore download pages & SPE from Github and got to installing. All looked to be well, but noticed that some of the SXA features appeared to be missing, such as the SXA Site manager.
Identity server error after fresh install of 10.2
Sitecore 10.2 ships by default with Sitecore Identity Server 6 which has a dependency on NET Core 3.1 and related assemblies. As with previous versions it can easily be supported (in parallel with previous versions) by installing the NET Core 3.1 Hosting bundle.
RAZL connections using Environment variables
RAZL is a really handy addition to a Sitecore developers toolbox. It allows for content comparison and sync between environments. Great for pre-production environments where you need to “refresh” some content or get a brand new environment up to date with the latest stuff your content producers have been working on. Razl v5+ also offers powershell scripting, so you can easily sync the same items across many environments ….it’s handy. But it can be challenging to deploy in a repeatable way when not using containers, due to it’s installation method and security model.
Central Package Management in Sitecore solutions
If you’ve ever upgraded a Sitecore project, you’ve experience the joy of trying to search and replace all of the nuget package versions in the Package references of csproj files. Invariably these are scattered throughout the tens (hundreds?!) of projects in “Helix” based solutions, so can be time consuming and error prone to repetitively upgrade the package versions. Wouldn’t it be great if all package versions could be managed in one place?
Multisite cookie handling
Recently I had a requirement for the following scenario, which at first seemed straight forward, but ended up needing a little more work than expected! On an existing mulitsite XP SXA/JSS install I needed two specific sites to share an analytics cookie for cross site tracking of contacts while all other sites to just use their default hostname for the analytics cookie.
JSS Node Proxy and CSPs
Lately I’ve been digging into JSS delivery topologies and in particular SSR proxy options. As a starting point, I’ve been using the sample node headless proxy from the Sitecore JSS Github repo. In my dev scenario I was hitting a local Standalone Sitecore instance in Docker, and immediately noticed the images being referenced from Sitecore were getting blocked by the Content Security Policy (CSP). This is due to the CSP being set on all requests to the CM via a web.config setting, and then it being repeated back to the browser via the node proxy.
JSS headless SSR proxy “unable to verify the first certificate”
When developing a new JSS solution I was looking to have a play locally in headless mode. Unfortunately I hit an issue after standing up a newly minted Sitecore 10 SXA/JSS instance in docker and using it as the apiHost running the node-headless-ssr-proxy sample app locally. After setting up the appropriate values for the proxy and ensuring the react app was in place, I was getting the following error for all SSR layout service requests....
EXM dispatch testing and tuning
EXM comes Out Of the box with Sitecore 9+. That’s great, but how many emails can it send? How do you scale it to meet business requirements? These are questions that need to be answered well ahead of rolling out your new email marketing campaigns as there may be some architectural or infrastructure changes required.
EXM on Sitecore 9.0.x
Sitecore 9+ ships with EXM, a powerful Email Marketing tool that can put XDB data to work. Since Sitecore XP 9.0 Initial release, EXM has been a part of the platform rather than an additional module. This has gone a long way to help EXM not become the long lost forgotten cousin of the Sitecore world. Unfortunately, there are some fairly impactful issues with the earlier releases that may warrant a minor upgrade, rather than fighting the platform. 9.0 Update 2 and above have appeared to be much more stable….the more recent the better!
Symposium 2019 – What to look forward to
Sitecore Symposium 2019 is coming up at the Swan and Dolphin* Resort in Orlando, FL. I live on the other side of the world from Orlando. Almost literally. It’ll take me just short of 24 hours flight time to get there. Add in transit and the inevitable delays, it’s over 30+ hours door to door…..each way. I’ll also be leaving a young family and (very understanding) wife at home. This bit, in particular I am not looking forward to. But it’s worth it.
SUGCON ANZ 2019 – The Experience

The first SUGCON ANZ is in the books, and what a ride it was. SUGCON (Sitecore User Group Conference) is a community driven conference that has run successfully in Europe (for many years) and India in more recent times. This year saw the inaugural SUGCON ANZ. A one and a half day conference in Sydney covering multiple technical and marketing tracks on all things Sitecore.
EXM scheduling of A/B Test in non-UTC timezone
A/B Testing in EXM is a great way to learn from and optimise email campaigns to improve engagement results. However I came across an an edge case that had some unintended consequences (at least in Sitecore 9.0 Update 1, perhaps in later releases?).
List binary details with powershell
When troubleshooting Sitecore issues and interacting with support there is often a need to confirm the versions of binaries in your solution. While there are tools to help provide all the information, sometimes its just not possible in some environments. This powershell script will help you do just that!
Sitecore 9 slow login – clean up your tickets
We noticed that the login on our CM was degrading, but with no real changes that we thought may affect this. At it’s worst it was taking up to 45 seconds to login successfully. I did a quick profile to see what was going on. Lo and behold a lot of time was being spent hitting the core db looking for existing login tickets, which allows for the remember me functionality to work.
EXM previews not sending
When doing a “send quick test” from the EXM review tab, we were seeing everything working as expected for the first few sends. However on subsequent sends (usually the 4th – 5th) the email was not sent and the spinner next to the send button took a long time. The XHR request to /sitecore/api/ssc/EXM/ExecuteSendQuickTest eventually timed out and showed the error “We are very sorry, but there has been a problem, please contact your system administrator.”. I thought about doing that….but that would probably cause some sideways looks given I’d be talking to myself.
Active tests not showing
Sitecore’s Experience Optimization content testing functionality is a powerful tool in the Sitecore XP arsenal. When coupled with a solid engagement value strategy, marketers can get deep insights into what actually works (rather than what we think may work).….when it works
xDB index rebuild with Azure Search
As part of a Sitecore migration (8.2 to 9.0.1) we had a requirement to migrate a sizeable xDB implementation. The xDB data migration tool makes this super easy. It reads straight out of your existing mongoDB and pushes it to xConnect. As new contacts and interactions are pushed to the 9.0.1 xDB (in our case in Azure SQLDB) the indexer service will pick up the changes and update the appropriate index. Sweet! One problem, there are some serious caveats on the xDB index rebuild for Azure search.....
Machine Learning in Sitecore – Is it real?
BINGO! It’s all the buzz., it’s cool. It’s machine learning. But is there real world use for Machine Learning for organizations that aren’t an Amazon or Microsoft? Honestly I don’t know, but the potential looks amazing, particularly for organizations that have a lot of data to leverage...