If you trap the customer, they'll still leave
Storyblok billed us thousands in breach fees. We moved our sites off it in hours. AI made exit cheap. Lock-in is a worse bet than looking after customers.
By Subash Adhikari · · 3 min read
We got a €1,000 "Maximum Usage Breach Fee" from Storyblok. Then another. Then another.
On a Growth plan that costs about €99 a month.
By the time their support laid out the full picture, that fee had landed on five invoices in a row. Five thousand euros in breach fees alone, on top of API overage packs and the subscription. Our space was pulling eight or nine million API requests a month against a one-million included allowance and a five-million hard ceiling. The automated warnings talked about "extra fees." They never named the thousand-euro penalty until after we'd already paid it.
So we left.
What we actually did#
I moved our Memories and FutureMe blogs (and the related marketing pages still on Storyblok) off their API. Content now lives as Markdown in the repos. Images went to our own S3 and CDN. Existing URLs stayed the same. We backed up the spaces, then deleted them.
The interesting part isn't the CMS choice. Markdown was enough for these sites. The interesting part is how fast the exit was once we decided to go.
A few years ago, migrating a CMS was a multi-week project. Export formats, custom scripts, content models that don't map cleanly, asset dumps, preview environments, cutover weekends. Vendors know this. Friction is a retention strategy.
That math changed.
With AI in the loop, pulling stories out of an API, reshaping them into Markdown, rewriting the render path, and shipping it is no longer a heroic effort. It's a focused afternoon (plus the usual review and deploy). We weren't stuck because Storyblok held our content hostage. We were stuck because, for a while, leaving felt more expensive than the fee. Once leaving got cheap, the fee stopped working as leverage.
Lock-in is a worse bet than it used to be#
I'm not angry at Storyblok for having pricing. Usage-based plans exist for a reason. What broke trust was the shape of the fee: a flat thousand-euro penalty on a ~€99 plan, billed month after month, with the clearest naming of the fee arriving after the money had already gone out.
The product response from their side was, roughly: upgrade to a much more expensive plan, or keep paying. Fair enough as a business choice. Also a clear signal that the relationship had flipped. We were being managed as a billing problem, not a customer with a product problem (too many uncached API hits on a blog).
Here's the bit that matters beyond one vendor.
If your retention model depends on making exit painful (proprietary formats, opaque exports, surprise penalties, "talk to sales" as the only path out), AI is eating that advantage. Customers can rebuild the integration layer faster than your account team can schedule a call. The trap still closes. It just doesn't hold.
The companies that win the next decade won't be the ones who make leaving hardest. They'll be the ones customers don't want to leave. Clear pricing. Help when usage spikes, before the breach fee. A path to fix the root cause (caching, CDN, fewer live API hits) instead of only a path to a bigger invoice.
What I'm taking from this#
Get new posts by email at the end of this post.
Look after the customer more, not less.
Charge for value. Be boringly clear about what happens when someone goes over a limit, before they do, in the email, with the number. When they hit a wall, help them reduce usage or move up on terms that still feel fair. Don't treat friction as a feature.
And if you're the customer: assume exit is cheaper than it used to be. Keep your content portable. Prefer formats you can open without a vendor. When the relationship stops being mutual, leave. It won't take as long as you think.
Related posts
Thanks for reading. You can also follow along on X or with RSS.