Kontent.ai: scouting the Czech enterprise headless CMS from outside the sales wall

Kontent.ai is the SaaS headless CMS that used to be called Kentico Kontent, sister product of the on-prem Kentico Xperience. In 2024 it dropped the Kentico prefix and re-branded itself around the AI suffix — the same marketing move Sitecore made with "SitecoreAI." We spent an evening evaluating it the same way we evaluated Sitecore XM Cloud and Contentstack the week before: read the docs, hit the Delivery API with curl, screenshot the pricing page, decide where this lands in a spreadsheet next to Contentstack, AEM, and the open-source tier we already self-host. Here is what we found, what we couldn't price without a sales call, and one thing the public Delivery API does much better than its enterprise peers.

Honest about what this is

We're the team behind SimpleReview, a Chrome extension that drafts code-fix PRs on whatever element you click on a broken admin or storefront. We are not affiliated with Kontent.ai or Kentico, not partners, not customers, never sat through a demo call. This page is a single scouting session on 2026-05-07 from outside the sales wall: real headless-Chrome screenshots of the public pricing and docs pages, a real curl against the public Delivery API, and the on-record rebrand timeline as it actually exists today. If we got something wrong, open a GitHub issue and we will fix it.

What Kontent.ai is, briefly

Kontent.ai is a cloud-only enterprise headless CMS made by a Czech company headquartered in Brno. Its parent organisation, Kentico, has been shipping CMS software since 2004, originally as an on-prem .NET / SQL Server product called Kentico CMS — later renamed Kentico Xperience. Around 2019 they spun out a separate cloud-native, content-as-a-service product as Kentico Kontent; in 2024 that product dropped the Kentico prefix and re-branded as Kontent.ai. The on-prem Kentico Xperience product still exists and is still actively sold; Kontent.ai is the cloud-first, headless-only sibling.

The .ai suffix is the same marketing pivot Sitecore made with "SitecoreAI" in roughly the same window. Underneath, the product is a structured-content CMS with content types, taxonomies, multi-language workflows, a Delivery API for read paths, and a separate Management API for writes. The .NET SDK is first-class — unsurprising for a company whose parent product is a Microsoft-stack CMS — but they also publish JS/TS, Java, PHP, Python, Ruby, and Swift SDKs. The customer wall on the homepage on 2026-05-07 — Vogue, WebMD Ignite, ESMO, DKMS, University of Oxford, R&A, PPG Paints — skews editorial / institutional, not DTC commerce. Editorial workflow, taxonomies, multilingual variants, and approvals are first-class; storefront / cart primitives are not.

Kontent.ai homepage on 2026-05-07. Black background, KONTENT.AI wordmark top-left, nav: Product, Solutions, Customers, Pricing, Resources, Login, 'See if we're a fit' CTA. H1: 'The CMS built for speed, control, and the future of content'. Sub: 'Faster publishing for content teams, headless flexibility for developers, and complete control over content at scale.' Two CTAs: purple 'See if we're a fit' and outline 'Explore the platform'. Customer logo strip below: VOGUE, WebMD Ignite, ESMO, DKMS, University of Oxford, R&A, PPG Paints.
Captured 2026-05-07 from https://kontent.ai/ via headless Chrome at 1280×858. The wordmark is now KONTENT.AI with the dotted "i" stylized as a wedge — that's the 2024 rebrand. The customer wall skews editorial / pharma / institutional, not commerce.

Friction 1 — pricing is a slider with no published numbers

On most enterprise SaaS, the public pricing page does one of two things: it shows a Starter / Growth / Enterprise ladder where two of the three tiers have a published number, or it shows nothing and routes everything to a sales form. Kontent.ai picks a third option that we hadn't seen before: it shows a public configurator with three sliders — User seats, Content types, Content items — and a panel that updates the implied volume discount percentage as you drag, but never resolves to an actual dollar number. The sliders shape the quote; the quote itself comes from the form.

Kontent.ai pricing page captured 2026-05-07. Headline: 'Predictable pricing at enterprise scale'. Body copy: 'No complicated tiers. No excessive add-ons. No unexpected price jumps. Just transparent, flexible pricing that adapts to your business needs, both now and in the future. Use the sliders to see your potential savings instantly. For a detailed quote, fill out the form and our team will review your needs and get in touch with you to design a tailored estimate.' Three sliders visible: User seats (set to 21-50), Content types (set to 51-100), Content items (set to 26k-100k). Side card: 'Additional volume discount 10%'. No dollar prices visible.
Captured 2026-05-07 from https://kontent.ai/pricing/. The sliders shape an implicit quote but never resolve to a dollar number. "Use the sliders to see your potential savings instantly. For a detailed quote, fill out the form…" The "predictable pricing" framing is honest about being custom-quoted; it's just not a number you can paste into a procurement spreadsheet without a phone call.
What gets hidden

If you're trying to put Kontent.ai into a five-vendor comparison spreadsheet, the slider gives you the variables that drive the quote (seats, types, items) but not the per-unit cost behind any of them. That is more transparent than "Contact us" — at least the dimensions are named — but it still puts you on the phone before you can model annual cost in two scenarios. Compared to Contentstack ("Contact us"), Sitecore XM Cloud ("Book a demo," /pricing path 403s), and AEM (also custom-quoted), this slider page is the most informative of the four. That is a low bar.

Friction 2 — the Delivery API is genuinely good

Pricing pages can hide numbers; production endpoints cannot. The Kontent.ai Delivery API — the public CDN-fronted REST endpoint your apps hit at runtime — is documented, addressable, and behaves cleanly even with garbage input. The base URL is https://deliver.kontent.ai/<environment-id>/items, where environment-id is a UUID provisioned per tenant. Without an account, without any credentials, you can hit the endpoint with an obviously-fake UUID and get back an exemplary error response.

$ curl -s -i \
    https://deliver.kontent.ai/00000000-0000-0000-0000-000000000000/items

HTTP/2 404
content-type: application/json; charset=utf-8
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
x-content-type-options: nosniff
referrer-policy: strict-origin
access-control-allow-origin: *
x-served-by: cache-bma-essb1270074-BMA, cache-bma-essb1270026-BMA
x-cache: MISS, MISS
date: Fri, 08 May 2026 07:09:02 GMT
content-length: 352

And the body, verbatim:

{
  "message": "The specified environment with the ID '00000000-0000-0000-0000-000000000000' doesn't exist. Check for the correct environment ID in Kontent.ai > Environment settings > General. See https://kontent.ai/learn/reference/delivery-api for more details.",
  "request_id": "6eb03aceeefd588b",
  "error_code": 105,
  "specific_code": 0
}

There are five things right with this response that a depressing number of enterprise APIs get wrong:

  1. The error message names the missing thing in plain English ("environment with the ID 'X' doesn't exist") instead of a generic "Bad Request."
  2. It tells the operator where to look — "Kontent.ai > Environment settings > General" — which is the actual UI path for a person with admin access. That is a huge time-saver compared to APIs that return a stack trace fragment or "code 105" with no human anchor.
  3. It links to the docs. kontent.ai/learn/reference/delivery-api is a real, indexed, public page. The link works.
  4. It exposes a request_id, not a stack-trace blob, for support tickets — and a numeric error_code + specific_code for programmatic error handling.
  5. It's served from a CDN. x-served-by: cache-bma-...-BMA is Fastly's Stockholm POP. (Sitecore Edge is Cloudflare-fronted; Contentstack is multi-region AWS/Azure/GCP. Kontent.ai is on Fastly.) From a Hetzner Frankfurt box the round trip is ~30 ms. The CDN edge is enforcing the tenant boundary, so an invalid UUID never touches the origin.

Compare that to the equivalent error from Sitecore Experience Edge — {"detail": "No sitecore context"} — which is technically RFC 7807 Problem Details compliant but tells a developer nothing about what to do next. Kontent.ai's response is not RFC 7807; it's a plain JSON envelope with their own conventions. But it is genuinely operator-friendly. We'd take it over the spec-compliant terse one any day.

The docs portal is where this product earns its keep

The other artifact worth looking at is the Learn portal — kontent.ai/learn/. Unlike Sitecore's recent reorganization that folded everything into a "SitecoreAI Documentation" landing aimed at executives, the Kontent.ai Learn portal is structured around the actual workflow stages a developer cares about: Try Kontent.ai, Plan, Set up, Model, Develop, Create. The Delivery API reference page (below) opens with a one-paragraph "what this is, what it does," names the related concepts (CDN, content filtering, HTTPS), and immediately surfaces the three things a new developer wants to do — Hello World, build first app, optimize performance.

kontent.ai/learn/reference/delivery-api on 2026-05-07. Top nav: Cheat sheets, Documentation, API reference, Product updates, Sign in. Sub-header: KONTENT.AI LEARN. Main nav tabs: Try Kontent.ai, Plan, Set up, Model, Develop, Create. Left side panel: 'Delivery REST API · API Reference' with sub-nav Introduction (About Delivery API selected), Published content vs. preview, Postman collection, SDKs, Authentication, API keys, API limitations, How the API caches your content, Errors. Filtering section, Resources section. Right column: H1 'About Delivery API'. Body: 'Use Delivery API to deliver large amounts of content to your website or app. Your content is cached in a CDN, which makes the content quickly available from wherever you are. The API provides content filtering options you can use to get just the content you need.' Highlighted box 'Related paths' with three links: Hello World, Build your first app, Optimize the performance.
kontent.ai/learn/reference/delivery-api on 2026-05-07. The "Related paths" callout — Hello World → Build your first app → Optimize the performance — is the kind of staged on-ramp that respects a new developer's time. The left nav names "Errors," "API limitations," "How the API caches your content" — not buried, not under a marketing tab, just listed where you'd expect them.

The Postman collection is linked from the sidebar, the SDK list is one click away, and the API-keys, authentication, and rate-limit pages are sibling documents — not behind three nav levels. Rating just the docs experience, Kontent.ai lands above Contentstack and well above the post-rebrand Sitecore docs landing.

How Kontent.ai compares to the alternatives

We've now done the same scouting walk on a handful of CMSes. The honest comparison isn't "which is better" — it's "which procurement category are you in and which trade-offs match." Kontent.ai sits in the upper-mid tier of the headless market, alongside Contentstack and a step below Sitecore XM Cloud / Adobe AEM in marketed scale, but at meaningful remove from the open-source self-host tier we'd reach for in a startup.

DimensionKontent.aiSitecore XM CloudContentstackSelf-host (Strapi/Directus/Payload)
Time to first curl against the public CDN ~30 ms (Fastly BMA POP). Endpoint is publicly addressable; account-gated content only. ~120 ms (Cloudflare FRA POP). Same pattern. Behind a demo-request form for usage, but endpoints documented. ~10 min from docker run.
Public pricing Slider with three named cost-driver dimensions. No $ tier numbers. Form for quote. None visible. /pricing path 403s. "Contact us" only. Self-host: free. Cloud tiers: published.
Hosting model in 2026 Cloud-only. Sister product Kentico Xperience is on-prem and still sold. Cloud-only (XM Cloud). On-prem XM/XP in maintenance. SaaS-only since launch. You.
Delivery layer Fastly-fronted REST. Stockholm POP for FRA traffic. Cloudflare-fronted GraphQL. RFC 7807 errors. Multi-region CDN (AWS/Azure/GCP), 7 region URLs. Whatever you put in front of the container.
Error envelope quality Operator-friendly: names what's missing, points at the UI path, links to docs, exposes request_id + numeric error_code. Standards-compliant (RFC 7807) but minimal: "No sitecore context". Standards-compliant, machine-readable. BYO.
SDK breadth .NET (first-class), JS/TS, Java, PHP, Python, Ruby, Swift. JSS / Next.js Headless SDK + .NET legacy. Multiple, JS-led. Community-maintained.
Origin / data residency Czech-headquartered (Brno), EU-native data residency. Danish HQ; cloud is multi-region. US-headquartered, multi-region. Where you put the box.
AI surface The .ai rebrand is mostly marketing wrapping; the AI features ship under the same product. Brand voice / drafting assistant in the authoring app. "SitecoreAI" — agentic content authoring, currently the marketing wrapper. Brand-aware writing assistant + agent workflows. BYO LLM via plugins.
Vendor lock-in High. Authoring lives in their tenant; export tooling exists. High. Same shape. High. Same shape. Low. Database is yours.
Realistic procurement window Weeks to a few months. Months. MSA, DPA, security review. Weeks to months. One afternoon.

None of those rows are a verdict. If your CMO already chose a vendor on the basis of "who do our peer brands use," none of the technical rows will overturn that. For a six-person team picking a CMS for two years, Kontent.ai is a category mismatch — the slider is honest, but it's still an enterprise-procurement product.

Where Kontent.ai is the right answer

Two situations where we'd put Kontent.ai on a shortlist on technical merits, not just brand-tier matching:

  1. EU data residency is contractually required. Czech HQ, Fastly EU POPs, GDPR-native. The data path doesn't touch a US-headquartered tenant by default. That alone closes deals in EU public sector and pharma where a US vendor needs an extra two months of legal review.
  2. Microsoft / .NET shop with editorial-heavy content. The .NET SDK is genuinely first-class — that's the pedigree from Kentico's Xperience product. Combined with editorial workflows and multi-language variants, this is the natural pick for a brand whose CMS team is .NET and whose content is pages, not products.

Where we'd push back: a startup of 6–30 with no editorial team, no compliance need, and no .NET investment shouldn't be on this shortlist. Procurement window, lock-in, and inability to model cost without a phone call are disqualifying for that segment. We'd self-host Strapi, Directus, or Payload and revisit once we had revenue and a compliance need.

Questions worth asking before the demo

  1. What is the unit cost behind each slider? Seats, content types, content items. Get a written per-unit number so you can model 2x and 5x growth.
  2. What is the migration story off? Authoring lives in their tenant. Ask for a written worst-case "we leave in 18 months" description.
  3. What is the SLA on Delivery API in our region? Fastly-fronted is a strong sign; ask for the contractual number and the incident history.
  4. Where does my data physically live, and is that contractual? EU data residency is a Kontent.ai strength; make sure it's in the MSA, not just the marketing site.
  5. Which AI features are GA today vs roadmap? The rebrand happened in 2024. Some features are real, some are conference-deck. Get the list.

Things we'd change about the public surface

  1. Resolve the slider to a number. The three sliders already shape the quote. Put a "starts at $X / month at this configuration" badge on it. Procurement will love you for it.
  2. Self-serve developer sandbox. A scoped 30-day tenant with the demo content tree pre-loaded would let evaluators write a real Next.js or .NET integration before the first sales call. The Delivery API is too good to hide behind a quote form.
  3. Own the rebrand more forcefully on the customer-stories page. Several visible case studies still read "Kentico Kontent" — confusing for someone who searched "Kontent.ai."

What we'd actually do

If we were the CMS lead at a European publisher with a dotnet stack and a compliance officer in the meeting, we'd put Kontent.ai on the shortlist alongside Contentstack and probably above Sitecore XM Cloud — the docs and the API are better, the EU-native data path is real, and the procurement story is meaningfully shorter than Sitecore's. We'd skip it for any team that's primarily a JS shop with a developer-experience-first culture and no compliance-driven need; Payload or Directus are better fits for that profile and cost two orders of magnitude less to evaluate.

Where this fits

Adjacent scouting notes: Sitecore XM Cloud, Contentstack, DatoCMS, Strapi, Directus, Payload, Ghost. SimpleReview is the Chrome extension that turns whatever element you click on a broken admin or storefront into a draft code-fix PR — it works the same on a Kontent.ai-rendered Next.js front end as on a Strapi one, because by the time the page renders it is just HTML.

Demo: SimpleReview on a Kontent.ai issue

~/$ curl https://deliver.kontent.ai/00000000-0000-0000-0000-000000000000/items
SimpleReview
$ curl deliver.kontent.ai/00000000-.../items
HTTP/2 404
request_id: 6eb03aceeefd588b
Kontent.ai environment id is wrong
Delivery API says the environment does not exist and names the exact admin path to check.
Fix ready
$ KONTENT_ENVIRONMENT_ID=$(validated uuid)
startup check prevents deploy
404 message links editor to Environment settings
Click the broken response to attach context
Detected
Fake UUID reached Delivery API and returned code 105
Fix plan
Validate env id at boot and preserve request_id
Result
Broken preview explains where to find the correct id
PR: Kontent env validator
+ lib/kontent.ts + tests/kontent-env.test.ts + .env.example
Comment for agentx
Validate the Kontent environment id|
SimpleReview - Kontent.ai Delivery API 404 becomes a deploy-time environment-id guard