Blogs posted in 2026
Why AI Hallucinates Like a Renaissance Painter
![]()
Recently my family took a trip to Florence, Italy and visited the Uffizi Gallery where some of the world’s greatest art can be admired.
We were looking at one particular portrait and my wife said to me, she was beautiful wasn’t she? I asked “was she”? Not because the portrait didn’t show a beautiful woman, it did. But because that portrait was an interpretation of what the artist saw in front of him and what people expected of a noble man’s wife to look like. Did the artist interpret the portrait based on what he saw in front of him or dare I say it did he hallucinate?
Optimizely SaaS CMS Webhooks: "The URL provided could not be validated. Please check the link and try again."
If you've just hit that error trying to save a webhook in Optimizely SaaS CMS, here's the short version:
Optimizely SaaS CMS performs a validation handshake before it will save your webhook. It sends an HTTP
OPTIONSrequest to your endpoint URL, and your endpoint must reply with the headerWebHook-Allowed-Origin: *. A200 OKon its own is not enough. Most free webhook-inspection tools return200but do not send that header, so the CMS refuses to save the webhook. Configure your test endpoint to returnWebHook-Allowed-Origin: *onOPTIONS— in Beeceptor this is a single mocking rule — and the webhook saves immediately.
That's the answer. The rest of this post explains why and walks through a Beeceptor setup step by step:
Part 2: The Claude Code Prompt I Use to QA an Optimizely CMS 13 Upgrade
In Part 1, I shared the Claude Code prompt that kicks off a CMS 12 to 13 upgrade - analysing the codebase, planning the migration steps and doing the heavy lifting on the code changes. That gets you a long way. But the upgrade isn't fully done when the site starts.
The gap between "it compiled" and "it's actually correct" is where things go wrong in production and that's where upgrades earn their reputation. Manually comparing two environments across dozens of URLs is tedious, inconsistent, and easy to rush. So here's the second prompt in the workflow: the one I use to systematically QA the upgraded site against the reference.
The approach
Part 1: Optimizely CMS 13 Upgrades Are Faster With AI - Here's the Claude Code Prompt That Gets You Started
Interest in Optimizely CMS 13 has been incredibly high since it reached general availability and for good reason, it's the biggest shift the platform has seen in years, bringing with it AI tooling, a modern visual editing experience and a composable architecture that changes how you think about content delivery.
If you're on CMS 12 and wondering how to get started, I wanted to share something that has genuinely changed how I approach upgrades: using Claude Code to kick off the process.
Here's the prompt I used:
From Zero to FAQ in One Prompt: How Optimizely Opal Generates and Publishes AEO Content For You
What if you could generate a complete set of FAQs for a page and publish them - without leaving the Opal chat window? That's exactly what Optimizely Opal can do when you combine its built-in FAQ agent with the page update tool. One prompt, two tools, zero manual effort.
In this post I'll show you how this works, give you the exact prompt I used, and explain why this matters for your AEO (Answer Engine Optimization) strategy:
Best Practices for Implementing Optimizely SaaS CMS: A Collective Wisdom Guide
This guide compiles collective insights and recommendations from Optimizely experts for implementing Optimizely SaaS CMS, focusing on achieving stability and optimal performance. These are practical learnings from various projects and are shared to help you avoid common pitfalls and build robust solutions: