Pick Storyblok if editors want to arrange pages visually and you want published prices and a documented three-stage workflow. Pick Contentful if you prefer a plain API-first platform and will confirm cost with the vendor, since we could not read its pricing. Both are hosted, and both need a developer-built front end.
The short version
Pick Storyblok if the main requirement is visual page editing. Editors work in a block-based Visual Editor, the default workflow has three documented stages, and the pricing page gives you numbers: Starter free, Growth at $99 per month. The caveat is that custom workflows and scheduling are limited to specific plans, and the editor does nothing useful until developers build the integration.
Pick Contentful if you want a plain, API-first content layer with separate Delivery and Preview hosts and a team that treats content modelling as engineering. We cannot say more about its editorial features or cost. Contentful’s documentation and pricing pages returned HTTP 429 errors on 10 October 2026, and a retry the same day failed too. That is why the Contentful column below is thin.
Both are hosted and headless. Read the full profiles for Contentful and Storyblok. This is a documentation review, not a test.
At a glance
| Feature | Contentful | Storyblok |
|---|---|---|
| Licence | Hosted service; client libraries on GitHub are MIT | Hosted service; no software licence verified |
| Latest version | SaaS; JavaScript SDK contentful.js 11.12.10 (9 September 2026) | Not applicable; continuously updated SaaS |
| Written in | Not documented on pages we could open | Not documented on pages we could open |
| Hosting | Contentful-hosted APIs | Storyblok-hosted SaaS only |
| Editorial roles/workflow | Not documented on pages we could open | Default three-stage workflow; default and custom roles; scheduling on specific plans |
| SEO & structured data | Not documented as built in | Not documented as built in |
| Multilingual | Library supports localisation; limits Not documented on pages we could open | Field-level, folder-level and space-level translation |
| Headless/API | Delivery, Preview and Management APIs | Content Delivery API with draft or published versions |
| Typical cost | Not documented on pages we could open | Starter free; Growth $99/month; Growth Plus $349/month |
| Best for | Developer-led teams that will confirm cost with the vendor | Editors who want visual, block-based editing |
Editorial workflow
Storyblok’s default workflow has three stages (Drafting, Reviewing, Ready to Publish), and in it only stories at Ready to Publish can be published. Custom workflows are only available on specific plans. Roles come as defaults (Admin, Editor, Owner), which cannot be changed, plus custom roles such as a translator limited to one language. Scheduling a draft or an update is possible, but the documentation limits it to specific plans.
Contentful’s equivalents are Not documented on pages we could open. We can say only that the Delivery API returns published content and the Preview API returns drafts with a preview token. Confirm roles, approval stages and scheduling with Contentful, and ask which plan carries them.
What each leaves to the front end
Both need developer work before editors can preview. Storyblok’s Visual Editor requires the front end to fetch draft content, add data-blok-c and data-blok-uid attributes from each block’s _editable property, and load @storyblok/preview-bridge. Contentful’s Live Preview SDK needs initialisation with locale configuration, data-contentful-entry-id and data-contentful-field-id attributes from getProps(), a subscription to content changes, and untransformed data.
Beyond preview, the site templates, sitemaps, structured data, redirects, canonical tags, titles, hreflang and feeds are front-end tasks on both.
Search, structured data and feeds
The pages we read describe no built-in sitemap generator, structured-data output or redirect manager on either platform. Model author, date, image and meta fields in your content types and render Article or NewsArticle JSON-LD in the page.
Storyblok’s translation model affects URLs: field-level, folder-level or space-level setups each lead to different URL structures, and your front end must output hreflang alternates. Its webhooks cover story published, unpublished, deleted and moved events, suited to cache clearing and builds. Contentful’s webhooks are Not documented on pages we could open.
Hosting, performance and security
Neither needs installation. Storyblok enforces quotas by plan: Starter lists 100GB traffic and 100k API requests per month, Growth 400GB and 1M. Its Image Service resizes and converts to formats including WebP and AVIF through the asset URL. Contentful serves published content from cdn.contentful.com; image, caching and rate-limit documentation is Not documented on pages we could open.
Both mean your content sits with a vendor. Read export and termination terms. We did not review security documentation for either.
Cost of ownership
Storyblok: Starter is free with one space, one seat and two locales. Growth is $99 per month ($90.75 per month billed annually) with five seats, and Growth Plus is $349 per month with 15 seats. Extra seats are $15 per month, and subscriptions are per space, so a multi-site publisher pays more than once. Premium and Elite are custom.
Contentful: Not documented on pages we could open. Ask about users, locales, content records and API calls. Either way, add front-end development and hosting. See the cost guide and licence guide.
Migrating between them
We found no official migration path between the two in the pages we could read. Contentful publishes a migration tool and a Management API for scripting entries and content types, which helps with export. Storyblok’s block-based pages differ structurally from Contentful’s entries, so expect remodelling, not a field-for-field copy, and keep old URLs resolving with redirects at the front end.
Which should you choose?
- Editors want to rearrange page layouts themselves: Storyblok.
- Landing pages and special reports dominate: Storyblok.
- A plain article archive with structured fields: Contentful may fit, once you have a quote.
- You need published pricing now: Storyblok.
- Multi-market publishing with separate teams: Storyblok documents a space per region; confirm Contentful’s options with the vendor.
- Self-hosting required: neither, as far as we could verify.
Related: Sanity vs Contentful, the comparison hub and the CMS profiles.
Questions people ask
Is Storyblok easier for editors than Contentful?
Storyblok's Visual Editor lets editors arrange blocks and see the page, but only after developers build the preview integration. We could not read Contentful's editor documentation, so we cannot compare. Contentful's Live Preview SDK offers click-to-edit, again after front-end work.
Which is cheaper, Contentful or Storyblok?
We can price only Storyblok: Starter is free, Growth is $99 per month with five seats, and extra seats are $15 per month. Contentful's pricing page returned HTTP 429 errors when we tried, so we quote nothing. Get a Contentful quote before comparing.
Can either be self-hosted?
Not as far as we could verify. Storyblok is SaaS-only, and we found no self-hosted Contentful edition in the sources we could read. Contentful's client libraries and preview SDK are MIT-licensed on GitHub, but that is not the platform itself.
Which has a built-in approval workflow?
Storyblok documents a default three-stage workflow: Drafting, Reviewing and Ready to Publish. Custom workflows need specific plans. Contentful's workflow documentation is Not documented on pages we could open.
Do they handle sitemaps and redirects?
The pages we read describe neither as a core feature of either platform. Your front end generates sitemaps, structured data and redirects, so check each vendor's app directory for extensions before building them.
Sources
- Contentful describes itself on GitHub as 'The Composable Content Platform' with 'API-first technology'; its public repositories include contentful.js (Delivery API library), contentful-management.js (Management API library), a CLI, a migration tool and rich-text libraries. — source, checked 10 October 2026.
- The contentful.js library accesses the Content Delivery API, which uses host cdn.contentful.com and returns published content only, and the Content Preview API, which uses host preview.contentful.com, needs a preview access token and returns unpublished drafts. — source, checked 10 October 2026.
- The latest contentful.js release on GitHub is v11.12.10, published 9 September 2026; this is the JavaScript SDK version, not a version of the Contentful platform. — source, checked 10 October 2026.
- The contentful.js library supports localisation, including a withAllLocales modifier that returns content in all configured locales. — source, checked 10 October 2026.
- The Content Management API works with entries, assets, content types, environments (such as staging and production) and spaces, and authenticates with OAuth bearer tokens or API keys. — source, checked 10 October 2026.
- The Live Preview SDK (MIT licence) needs the front end to initialise the SDK with locale configuration, add data-contentful-entry-id and data-contentful-field-id attributes with getProps(), subscribe to content changes, and keep the original data structure for live updates to work. — source, checked 10 October 2026.
- Contentful's rich-text repository provides MIT-licensed packages that convert rich text documents to HTML, React components or plain text, and markdown to rich text. — source, checked 10 October 2026.
- Storyblok's pricing page lists Starter as free (1 space, 1 user seat, 100GB traffic and 100k API requests per month, 2 locales), Growth at $99 per month ($90.75 per month billed annually, 5 seats, 400GB traffic, 1M API requests) and Growth Plus at $349 per month (15 seats, 1TB traffic, 4M API requests), with Premium and Elite at custom pricing. — source, checked 10 October 2026.
- Additional seats are listed at $15 per month each, and subscriptions are per space (project). — source, checked 10 October 2026.
- The Visual Editor requires the front end to fetch draft content, add data-blok-c and data-blok-uid attributes from each block's _editable property, and load the @storyblok/preview-bridge library; a Preview URL is set in Settings, Visual Editor. — source, checked 10 October 2026.
- Storyblok's default workflow has three stages (Drafting, Reviewing, Ready to Publish), only stories at Ready to Publish can be published, and custom workflows are only available on specific plans. — source, checked 10 October 2026.
- Storyblok can schedule a new draft or update to a published story for later publication, but the documentation says scheduled publication is only available on specific plans. — source, checked 10 October 2026.
- Storyblok has default roles (Admin, Editor, Owner) with predefined permissions that cannot be changed, and custom roles tailored to the project, such as a German translator role limited to German content. — source, checked 10 October 2026.
- The Content Delivery API's version parameter selects draft or published stories; preview tokens access unpublished draft content and public tokens access only published stories. — source, checked 10 October 2026.
- Storyblok offers three translation strategies: field-level (one story, many languages, selected with the language parameter and optional fallback_lang), folder-level (a folder per language) and space-level (a space per region or market). — source, checked 10 October 2026.
- The Image Service transforms asset URLs by resizing, changing format (including WebP and AVIF) and applying filters such as focal point and quality; the /m/ prefix converts to WebP depending on the browser. — source, checked 10 October 2026.
- Storyblok webhooks cover story events (published, unpublished, deleted, moved) and asset, workflow and release events, and are suited to cache clearing and build triggers; a webhook secret is available on paid plans only. — source, checked 10 October 2026.