Articles about technical deep dives and development solutions.
A short dive into changes from working with Sites to working with Applications in CMS 13.
A summary of all new and updated functionality changes that have been introduced in version 4 of the Stott Security add-on for Optimizely CMS 12.
How to trigger Opal Workflows when publishing content in Optimizely CMS SaaS or PaaS.
Creating Opal Tools using the Optimizely.Opal.Tools C# SDK.
An approach to creating Optimizely Opal Tools without using the SDKs.
How to use Custom Events in Application Insights to track search term usage and report it to the UI.
Using Instructions to help Optimizely Opal generate llms.txt content.
Stott Robots Handler for Optimizely CMS 12 has been released with added support for Opal Tools.
A simple approach to feature flagging within Optimizely CMS.
Stott Robots Handler for Optimizely CMS 12 has been released with added support for llms.txt files.
Discover how to audit, reduce, and optimize Content Security Policies. Helping you stay within browser and CDN header size limits.
A summary of all new functionality and changes that have been introduced to the Stott Security v3 add-on for CMS 12.
How to make sure your cookies and third party add-ons are properly secured when using Opti ID.
Best practices for creating an Optimizely CMS Add-on.
How to package your Add-on to be distributed by Optimizely's NuGet feed.
How to create an editor interface gadget within Optimizely CMS PAAS Core.
How to create an Add-on with it's own UI within Optimizely CMS PAAS Core.
Writing unit tests with the help of GitHub Copilot for the first time.
A summary of all new functionality and changes that have been introduced to the Stott Security v2 add-on for CMS 12.
Working with programmatic generation of IList
Adding Cross-origin Resource Sharing response headers to the Stott Security Add-on for Optimizely CMS 12.
Using the ClientResource management within Optimizely CMS to render JavaScript and CSS resources correctly within the rendered HTML document.
Enhancing Geta Optimizely Sitemaps to include Images by overriding the SitemapXmlGenerator.
Making Content Recommendations easy and consistent for content editors using a custom block.
A proposition for using Razor Class Libraries and componentising Optimizely CMS 12 builds to reduce long term effort and rebuilding.
Information learned at the Opticon London 2022 event hosted by Optimizely.
Resolving 404 issues on static files in razor class libraries using the _content/foo.bar/scripts.js path.
Introducing a second way to mock and unit test with the Dynamic Data Store in Optimizely CMS 12.
Optimizely CMS 12 provides a Dynamic Data Store for custom storing of data, but how do we unit test a repository using the Dynamic Data Store?
A new robots.txt handler that has been built for use with Optimizely CMS 12.
Implementing Wild Card search in Optimizely CMS 11 Search and Navigation.
Removing information leaking headers and adding security headers in a .NET 5.0 web application using IIS.
A brief guide to setting up Optimizely Search and Navigation in the .NET 5.0 world.
In an Optimizely 12 .NET 5.0 world, the GuiPlugIn attribute has been removed, Here I describe how to reproduce this functionality with Menu Providers.
A solution for Unit Testing Custom Criterion for visitor groups in Optimizely CMS 11.
A solution for boosting exact matches over partial matches in Elastic Search.
Creating a test service to allow testers to maintain and vary shared test data for testing integrations to the HMRC test servers within a payroll application.
Using Lambda Statements in LINQ to Entities is an easy way to include other entities in entity framework 4, but it comes at a cost.
Why not to use large in-memory collections in a LINQ to Entities query in entity framework 4.
Selecting Parent and Children in LINQ to Entities.
How Behaviour Driven Design (BDD) made my life easier.
Reflections on an epic product rewrite and how we could have reached the market sooner with some better consideration for Minimum Viable Product.