Guides

The AI-Ready CMS Field Guide: What Strapi, Storyblok, and Contentful Each Get Right

TL;DR

I pointed Claude Code at three headless CMSs and had it build the same complex landing page in each, using nothing but their API docs. All three finished in under 20 minutes for about $8 to $11. The surprise was how differently they got there: Strapi needed about 9 API calls, Storyblok about 53, and Contentful about 260. Contentful was still the cheapest run.

The Goal

The goal was to validate the idea that modern CMSs need to be AI-ready. We put together a real-world use case that web developers encounter with their clients on a daily basis, quickly building a marketing landing page with a complex content model.

This was not a competition with an expected winner. We know from experience that the general rule of “the right tool for the job” always has and always will apply double to web development. We fully expected and did in fact find that each of the chosen platforms performed well at the baseline, but excelled in their specific domains.

After reading this guide you will have a clearer sense of what matters in an AI-ready CMS. You will walk away with some new best practices. You will have some ballpark estimates of the time and cost involved in switching to AI-driven content modeling. And you will be better positioned to reach for one of these tools based on the task you have at hand on a given day.

The more interesting question by the end of this guide won't be which of these three platforms to choose. It'll be whether your team is set up to take advantage of what all three now make possible.

Methodology

Mars Rover Supply Page Component

I wanted a content model with real complexity, so I invented a company with a complicated product to sell: Mars Rover Supply Company, maker of rovers for crewed and autonomous missions to Mars.

Our landing page has all of the usual suspect page components: a hero, an RFQ form, multi-column layouts, image placements, quote and stat callouts, lists, image backgrounds, links, and CTA buttons.

For each of the three CMSs we tested, the landing page was identical. We measured raw token counts, cache usage, actual cost, speed, API calls, and exception handling. We also evaluated each CMS's live preview capability and its readiness for component-based content modeling.

We ended up with four AI/CMS runs instead of three. We quickly learned that the agent gets smarter after completing a complex task once. Strapi was the first run. Then we ran Contentful. Then we ran Storyblok. When we ran Strapi again after Contentful and Storyblok, its speed and cost were close to the other two.

Note: We did not follow through on testing Sanity. After a few minutes of pointing our AI agent at Sanity, we realized how complex it was for a marketing landing page. Sanity’s complexity has an upside with incredibly complex data models. In our case, it was overkill.

We used Claude Code Opus 5 as our agent. No MCP servers were used. Instead, we pointed our AI agent at the API docs for each platform and let it make its own API calls. All three have MCP servers. Strapi's is in General Availability, Contentful offers an official hosted one, and Storyblok's is still experimental. I skipped them on purpose. I wanted to see what an agent could do with nothing but the API docs.

How It Went, Platform By Platform

Contentful Storyblok Strapi
Cost
(API token spend at list price, not on subscription)
$8.19 $10.99 $8.70
Cache-read cost
(% of total)
$4.68
(57%)
$7.21
(66%)
$5.25
(60%)
Active time 16m 19m 20m
Turns (user/assistant) 108 / 168 153 / 247 112 / 197
Tool calls 105 151 111

(Note: The expensive part of using an AI agent to build content models inside your CMS is the first pass. Once some context is built up in the AI’s cache, things get cheaper.)

Contentful

A Content Graph. That’s how Contentful thinks of content. What marketers and web developers think of as a field containing content inside a component inside a page is just an item of content related to another item of content related to yet another item of content. Each item of content is rigidly and clearly defined and typed. This structure is part of the reason why building in Contentful through its API was so fast.

When a user logs into Contentful, some work needs to be done to make the content intuitively feel like it does in a CMS like Storyblok or Strapi. This means customizing views and optimizing the editorial experience for each user. These are not bad things.

Contentful natively has a JSON object content type. The AI used this to manage some complexities in our Mars Rover content model, which streamlined and simplified our process.

Storyblok

Storyblok really shines for its user experience. As web developers, we forget there will be a marketing team trying to use the platforms and systems we set up for them. They'll use these tools all day, every day. Developer experience is great, but I love making my clients’ lives easier and more pleasant.

When a marketer logs into Storyblok, everything feels intuitive to them. The control panel is organized like their website’s site map. Everything is where they expect it to be. And since Storyblok’s live preview is so strong, our marketers just click and edit just like they always wanted to.

Our AI agent would have loved it if Storyblok had a native string-array or inline-object-array field type. But working around this was not that big of a deal.

Strapi

Strapi is open-source. You can host it anywhere you want. That can be a huge selling point when an executive team is making a CMS buying decision. They can be assured that there is no lock-in and no drastic license fee increases in their future.

But because you can host it anywhere, you have to first spin up an instance of Strapi before your AI can talk to it. Where web development is headed, there will be more and more pressure to just delegate the whole CMS provisioning experience to the AI. And when you have to stand up your CMS somewhere sensible in order for the internet to find it, there’s friction.

Nevertheless, Strapi’s native content modeling is ready for complex landing pages like we built. It can handle a great deal more than this of course, just like Contentful and Storyblok. But it’s perfectly capable for this use case.

Notably, a Strapi content model is just files in your filesystem, the same JSON schema files its own Content-Type Builder writes to. That means content-model changes go through Git like any other code change: reviewed in a pull request, diffable, revertable, and never out of sync between dev, staging, and prod. Storyblok and Contentful can be versioned too, via their own export tooling, but it's an extra step against a remote API. Strapi's schema is already source code, with nothing to export.

Chatty APIs

The following chart surfaces some of the most interesting API level data we collected. Namely, how chatty was each API? How many API calls did our agent have to make to perform specific tasks?

Schema calls Asset calls (8 images) Content calls Total
Strapi 0 (filesystem schema.json, hot-reloaded - no API involved) 8 (1 POST /api/upload each) 1 API call
53 nested content components were submitted inline as one dynamic-zone as a JSON payload
~9
Storyblok ~18 (1 POST /components/ per component) 32 (4 calls each: signed upload, S3 PUT, finish, get) 3 API calls
2 story creation calls
1 publish call
All nested content submitted inline in the story's JSON blob, same "one document" pattern as Strapi
~53
Contentful 48 (16 content types × [existence check, create, publish]) ~44 (upload, create, process, poll, publish per asset) 168 API calls
56 separate entries multiplied by one existence check, one create call, one publish call
Every nested block is its own linked Entry, not inline JSON
~260

Strapi’s content philosophy, a JSON object in the file system, really cuts down on the AI API calls. BTW, have a look at how quickly you can get images into the system.

In Storyblok, your agent will POST for each page component. And images take quite a few calls compared to Strapi.

Contentful looks like a hog with all of its API calls. But remember, it’s a content graph. Every item of content is its own thing, separately addressable, connectable to other content, agnostic about where content will subsequently be consumed. This is crucial for many complex use cases.

Live Preview

Live preview is rarely what a developer picks a CMS for. It is very often what the marketing team judges the whole project by. All three of our headless CMSs have a great live preview capability. Your client’s team can type content changes in their CMS and see those changes reflected immediately, side by side in the preview pane. The core content authoring and editing experience matters most to the people who use it daily.

In a headless context, it’s really interesting how this all works. With traditional CMSs like WordPress and Drupal, the CMS has a built-in page-rendering engine. Everything is one system, so preview is easy. With a headless site, who knows how the frontend was built?

Strapi, Storyblok, and Contentful all have some concept of a draft mode for content. Their live preview can piggyback on this to show the editor content in progress, not yet live, but still visible in the website’s shell. In our test, we used Next.js as the frontend framework. Next.js has a built-in draft mode, which makes CMS-level live preview easier to implement.

One caveat on Strapi. The side-by-side Live Preview is part of Strapi's paid Growth and Enterprise plans. The open-source Community Edition gives you static preview, which opens your frontend in a new tab. If avoiding license fees is why you're choosing Strapi, budget for that or plan to build preview yourself.

Each CMS pulls the live site page to preview into an iframe. It wraps that iframe in JavaScript that listens for content changes in the parent window and propagates those to the iframe. So as you type, you see your changes. No server was harmed during this preview!

In the screen videos below, you can see each CMS in action. Notice how intuitive Storyblok’s live preview experience is. Just click on content in the preview, and the appropriate content field comes into view and is editable. Marketing teams love how intuitive this is!

Contentful

Strapi

Storyblok

The Actual Landing Page

Choosing Between Them

We selected our three CMSs because they all have excellent live previews and work intuitively with your favorite AI tools. In both respects, the differences aren’t large enough to differentiate and really drive a decision. There are some additional criteria to consider, though.

Strapi if owning your tech stack matters more?

Strapi is an excellent choice for those teams who need to own their tech stack. They prefer open-source tools that they can host themselves wherever they choose. They don’t want licensing cost lock-in, and they want to own their data outright. Portability is a big consideration here. As is the ability to customize the platform if necessary.

Contentful if content will be consumed all over the place

Contentful was purpose-built for those digital experiences where content will be consumed across many channels. When there is a very large volume of content to manage, Contentful is also strong. And when an executive team likes the reassurance of a big, enterprise first-mover brand, Contentful is an easy win.

Storyblok if the marketer’s authoring experience is the priority

Storyblok wins in so many detailed ways when it comes to making a marketing team’s life easier. The CMS thinks the way marketing teams think about their websites. The sitemap gets an intuitive representation in a folder structure. Storyblok comes baked with a bunch of valid assertions about how marketers actually build componentized pages over time.

What this test actually showed

The subtext of this comparison guide is that AI coding tools like Claude Code and Codex have drastically changed the web development space. What this test showed me is somewhat narrow but nevertheless compelling. For one common job, modeling a complex landing page, an AI agent with good API docs did in under 20 minutes what usually takes me most of a day. I haven't measured what that does to a whole project. What I can say is that the choice of CMS is now part of that equation.

Is the CMS already up and running on the web (Contentful and Storyblok) and available via a well documented API? Or can the CMS be quickly instantiated by an AI on my local machine, again, with great programmatic access? Is the API itself shaped around the kinds of tasks that a good AI coding agent is ready to perform, such as creating new content objects, nesting them, versioning them and populating them with content?

The above considerations are now central to our choice in CMS tools.

A website’s CMS is a major component and major business decision. This choice must now be made with AI web development at the forefront. Hosting platforms and frontend frameworks as well are instrumental in gaining the most out of AI coding capabilities. As marketing teams and their web developers plan new projects, the marketing goals come first, the AI topic comes next, and then the planning and tool selection.