A long-running app imported 7x slower than a freshly restarted one, the finding that beat every API optimization, plus runnable benchmark jobs.
The low-level Commerce DTO API is not automatically fast: counting the database round trips per imported row, and four fixes I would apply first.
Committing a 250,000-row Optimizely catalog import row by row, returning a per-row failure report, and coalescing catalog events into one per batch.
Upserting a catalog entry through CatalogContext and MetaDataPlus: ContentGuid, the meta class seam, response groups, and a create path that rolls...
Why bulk catalog writes in Optimizely Commerce belong on the DTO API rather than IContentRepository — measured 2.7-3.3x faster, and what it costs you.
What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...
A drop-in base class and Blazor UI that records what Optimizely CMS 13 scheduled jobs actually did — logs, metrics, result summaries, and retention.
When I released OptiPowerTools.Hangfire back in March, it targeted Optimizely CMS 12. With CMS 13 now out and running on .NET 10, it was time to...
OptiPowerTools.Hangfire 2.0 adds Optimizely CMS 13 / .NET 10 support and ships ready-to-run sample jobs to shorten Hangfire setup on Optimizely...
In my first Apple Silicon post and the 2025 revisit I covered running an Optimizely Foundation site on an M1/ARM Mac. This time I wanted to try...