Resource Center / Articles / Astro CMS: Choosing a CMS for Your Astro Marketing Site

Astro CMS: Choosing a CMS for Your Astro Marketing Site

Uros Stancic • Tool Comparisons • Published on Oct 19, 2026 • Updated on Oct 19, 2026 • 19 min read

Astro CMS options compared: Sanity, Storyblok, CloudCannon, EmDash and more
Use AI to summarize this article

TL;DR

Astro's docs list 45 CMS guides and warn that many of them are stubs. For a marketing site, the Astro CMS shortlist is much shorter once you ask how editors will see their changes, because click-to-edit preview in Astro needs a few server-rendered pages on almost every option.

  • Sanity if marketers build pages from sections and a developer adds new ones. We built The Accountant Quits, a 118-page Astro site, on it.
  • CloudCannon if editors want to edit on the page and the site stays fully static. It's the only on-page editor here that works on a static build, and Astro's docs feature it as their CMS partner.
  • Storyblok if marketers build pages without a developer, in a team of 15 or fewer.
  • EmDash if you want the CMS inside the Astro app with no rebuild on publish. Cloudflare released 1.0 in September 2026.
  • Content collections, Keystatic or Decap if developers write the content and it can live in Git.
  • Payload only if your team will run two apps: Payload needs Next.js, so Astro becomes a second front end.

A marketer on an Astro site changes a headline, hits Publish and refreshes the page. Whether the new headline shows up right away, two minutes later or after a developer redeploys was decided the week the CMS went in.

We built The Accountant Quits, a 118-page Astro site, on Sanity in July 2026, and we run khod.io on Sanity and Next.js. This guide compares 12 options on what changes with Astro: how editors preview, which pages need server rendering, and what each costs at 5, 10 and 20 editors. Features and prices come from each vendor's docs and pricing pages on October 19, 2026.

Does an Astro site need a CMS?

Not always. Astro reads Markdown and MDX files from the repository through content collections, with a schema that checks every file at build time. A docs site or a developer blog can run that way for years, with no CMS bill and nothing between a merged change and the live page.

The limit is who can publish. A content collection is a folder of files in Git, so every edit is a commit, and the person making it needs the repository, an editor and a deploy. That works when everyone who publishes is a developer, or works with a coding agent that edits the files for them.

Our default is to build a CMS into the marketing sites we ship, because nobody can say who will edit the site a year from now. The team that works in GitHub today hires a content marketer next spring, and that person should be able to change a headline without opening a terminal. The practical rule: if everyone who publishes is technical, today and in the hiring plan, stay with content collections. If anyone isn't, add a CMS.

How a CMS plugs into Astro

Astro prerenders pages by default. At build time it fetches content from the CMS, writes plain HTML for every page, and ships no JavaScript unless a component asks for it. That's what makes an Astro site fast, and it shapes three things about any CMS you pair with it.

Publishing means a rebuild, or a server. On a prerendered site, an edit reaches visitors when the site rebuilds. The CMS calls a webhook when someone publishes, the host rebuilds and redeploys, and the change is live a minute or two later. Astro 6 made live content collections stable in March 2026. A page built on a live collection fetches from the CMS on each request, so a publish shows up with no rebuild. Live collections need server rendering, and so far only EmDash ships an official live loader. Astro 7, out since June 2026, adds cache tags, so a CMS webhook can clear just the pages an edit touched.

Preview needs a server-rendered route. A prerendered page was built from published content before the editor touched anything, so it can't show a draft. Most options in this guide that show unpublished changes on the page itself do it through pages rendered on request, behind a preview cookie or token. Sanity's Astro docs say it plainly: visual editing "requires server-side rendering", and "static output mode will not work". CloudCannon is the exception: it rebuilds the editable regions in the editor's browser, so the site can stay fully static.

The editor can live inside your site. Sanity Studio, TinaCMS, Keystatic, Decap, EmDash and StudioCMS all mount on a route of the Astro site, such as /admin. Visitors never load it: Astro only ships a page's JavaScript to people who open that page. Storyblok, Contentful, CloudCannon and Hygraph run their editors on their own servers.

The Astro marketing sites we build end up with the same shape: published pages prerendered, plus a handful of server-rendered pages that editors preview through. You need a host with a server runtime (Vercel, Netlify, Cloudflare or Node), which Astro supports through an adapter.

Which CMS fits your Astro site?

The tool asks who edits, how many people publish, how editors want to preview changes and where the site runs. Each answer maps to the one thing a CMS on this list does better than the rest.

Which CMS fits your Astro site?

Four questions about who edits, how they preview and where the site runs. We'll name the CMS that fits.

Step 1 of 4
Who will edit the site week to week?

The 12 Astro CMS options compared

Every cell comes from the vendor's docs, the Astro docs or npm, checked on October 19, 2026. "Click-to-edit" means an editor clicks content on the rendered page and lands on that field.

CMSAstro packageClick-to-edit in AstroNeeds server renderingWhere editors workPublish to live
Sanity@sanity/astro, officialYes, in Presentation; each edit reloads the pageFor preview pagesStudio on a route of your site, or hosted by SanityRebuild on publish, or server-rendered pages
Storyblok@storyblok/astro, officialYes, in the Visual EditorIts live-preview example uses it; the docs don't require itStoryblok's appRebuild on publish
CloudCannonEditable regions integration, officialYes, inline, in the browserNoCloudCannon's app, which builds your repositoryCommit, then rebuild (hosting included)
TinaCMS@tinacms/astro, official since May 2026YesYes, unless every editable region is a <TinaIsland>/admin on your site; content in GitCommit, then rebuild
EmDashemdash, by CloudflareInline editing, built inYes, Astro 6+ in server mode/_emdash/admin on your siteLive, no rebuild
StudioCMSstudiocms, community, v0.6Not documentedYes, server-rendered onlyDashboard on your siteLive, from its database
PayloadNone; the CMS runs in a Next.js appPreview beside the form; click-to-edit is EnterpriseYes, in the official Astro exampleA separate Next.js appServer-rendered, or rebuild
ContentfulNone; the contentful JS clientInspector mode through its Live Preview SDK, no Astro exampleFor draft previewContentful's appRebuild on publish
StrapiCommunity loaders onlyLive Preview, experimental, paid planFor draft previewStrapi's admin on your serverRebuild on publish
WordPress (headless)None; REST API or WPGraphQLNoneNowp-adminRebuild on publish
Keystatic@keystatic/astro, officialNoYes, for the /keystatic route/keystatic on your site; content in GitCommit, then rebuild
DecapNone needed; a script at /adminNo; a preview pane beside the formNo (except login routes off Netlify)/admin on your site; content in GitCommit, then rebuild

Three that come up in other roundups are left out. Prismic documents Next.js, Nuxt and SvelteKit, and Astro's Prismic guide is a stub. Hygraph's Astro loader is a beta last published in September 2024. DatoCMS has an official Astro package with click-to-edit, and fits teams already on it; its approval workflows are Enterprise-only.

What an Astro CMS costs at 5, 10 and 20 editors

Each count includes one developer seat on top of the editors, uses monthly billing, and assumes the site stays inside the plan's quotas. Prices come from each vendor's pricing page on October 19, 2026. Hosting the Astro site is a separate line, except on CloudCannon, where it's included.

CMS5 editors10 editors20 editorsWhat drives the price
Keystatic Cloud$25$50$100$10 a month plus $5 per user beyond 3. GitHub mode is free if every editor has repository access.
TinaCMS$56$139$317Team $29 (up to 10 users), Team Plus $49 (up to 20), Business $299, plus $9 to $18 per extra user.
CloudCannon$85$135$235Standard $55 for 3 users, then $10 per user. Hosting included.
Sanity$90$165$315$15 per seat on Growth. The Free plan holds 20 seats, with admin and viewer roles only.
Storyblok$114$349Contact salesGrowth caps at 10 seats, Growth Plus at 15 with no extra seats.
Contentful$300$300Contact salesLite is $300 for up to 20 users. Approval workflows need the $850 Lite Space.
Strapi$0 or $90, plus hosting$0 or $165, plus hosting$0 or $315, plus hostingCommunity is free. Growth ($45 for 3 users, $15 each after) adds Live Preview.
EmDash$0 or $5$0 or $5$0 or $5Free and open source. Cloudflare's $5 Workers plan is needed only for sandboxed plugins.
Decap$0$0$0Free and open source. Its hosted login service, Decap Turbo, costs €25, €55 or €115.
StudioCMS, Payload, WordPress$0, plus hosting$0, plus hosting$0, plus hostingNo seat fees. You run the server and the database. Payload also needs its own Next.js app.

The cheap end of this table is Git-based, and that's the catch: every editor works in files that need a deploy. Among the editors marketers would pick on their own, CloudCannon and Sanity cost about the same at 10 people. Storyblok and Contentful need a sales call before you reach 20.

The options, one by one

1. Sanity

Best for: a marketing team that builds pages from sections, with a developer who adds new section types when campaigns need them.

The official integration, @sanity/astro, mounts Sanity Studio on a route of your Astro site and gives you a client to query content. Content sits on Sanity's servers, so nobody on your team runs a database, and the Studio is the same one teams use with Next.js. Visual editing is on every plan, the Free plan included.

In Astro, the Presentation tool shows your site with overlays: click a heading and the Studio jumps to that field. The overlays only work on server-rendered pages, and each edit reloads the preview page; with Next.js, Sanity's toolkit updates the page in place. Sanity's own framework table rates its Astro support as "Basic". We'd call it complete enough for a marketing site; the section below shows the setup we run.

Where it pinches:

  • Publishing on a prerendered site needs a webhook that triggers a rebuild, and the webhook only fires for the document types listed in its filter.
  • Approvals are basic below Enterprise. The Growth plan's Contributor role can draft without publishing.
  • The bill grows with headcount, at $15 per editor a month.
Sanity CMS with Astro: Sanity Studio and the Presentation tool for editing an Astro marketing site

2. Storyblok

Best for: marketers who build pages on their own, in a team of 15 or fewer.

Storyblok became Astro's first official CMS partner in 2022, and Storyblok still maintains its own Astro package, @storyblok/astro. Its Visual Editor loads your site in a frame: an editor clicks a block to edit it, adds the next one from a picker, and rearranges blocks on the page. Live updates while typing are an option you switch on.

Since March 2026, Astro's docs feature CloudCannon as their CMS partner, while Storyblok's Astro page still calls Storyblok the official one. The package is maintained either way.

Where it pinches: seat caps (10 on Growth, 15 on Growth Plus), and the build-time content loader Storyblok previewed in 2024 is no longer in the package, so content comes through its API client.

Storyblok CMS with Astro: the Visual Editor for building pages from blocks

3. CloudCannon

Best for: a team that wants editors to change pages visually while the site stays fully static.

CloudCannon is a Git-based CMS with hosting included. It builds your repository, and its Visual Editor lets editors change text and components inline, on the page. For Astro components, it re-renders the edited region in the editor's browser, so there's no server-rendered preview route to build or host. Every save is a commit.

Astro named CloudCannon an official partner in March 2026. Standard costs $55 a month for three users and $10 per extra user. Team ($350, 15 users) adds custom permissions and branch workflows, where an editor's changes wait on a branch until someone merges them.

Where it pinches: the editing experience depends on the developer marking regions as editable, and server-rendered Astro pages aren't covered in its docs.

CloudCannon CMS with Astro: inline visual editing on a static Astro site

4. TinaCMS

Best for: a small team that wants visual editing on content that lives in Git.

Tina's docs call Astro its default starter, and its official @tinacms/astro package arrived in May 2026. Editors click content on the page to edit it, with no React needed in your page code. The admin sits at /admin on your site, and content stays as Markdown or MDX in the repository, synced through TinaCloud or a data layer you host.

The catch is the adapter. Tina refetches each editable region from an on-demand route, so a site without server rendering fails to build, unless every editable region is wrapped in a <TinaIsland>. Editorial workflow (approval before merge) starts on Team Plus, at $49 a month.

TinaCMS with Astro: click-to-edit on content stored in Git

5. EmDash and StudioCMS: CMSs built on Astro

Best for: developers who want the CMS and the site in one Astro app, with no rebuild on publish.

EmDash is Cloudflare's CMS, built on Astro and MIT-licensed. Cloudflare announced it in April 2026 as a developer beta and released 1.0 on September 28, 2026. The admin runs inside your Astro app at /_emdash/admin, content lives in SQLite, D1 or Postgres, and it's the only CMS here with an official live loader, so pages read published content on request. It runs on Cloudflare or any Node server, needs Astro 6 or later in server mode, and ships roles that include a Contributor who drafts without publishing.

Cloudflare took on Astro's core team in January 2026, and Astro stays MIT-licensed and deployable anywhere. EmDash is the first CMS to come out of that pairing, so expect it in more Astro starters.

StudioCMS is the community's Astro-native CMS, MIT-licensed and server-rendered, at version 0.6. It's promising and still pre-1.0, so we wouldn't put a client's marketing site on it yet.

Where they pinch: both need a server and a database you run, and EmDash's first-party plugins are still 0.x.

EmDash CMS from Cloudflare: a CMS built on Astro that runs inside the Astro app

6. Payload

Best for: a team already running Payload in a Next.js app that wants an Astro marketing site on the same content.

Payload 3 installs inside a Next.js app, and its admin runs there. Payload's own Astro example is a two-app setup: a Next.js app for the CMS and a server-rendered Astro app that reads Payload's data directly. That example is pinned to Payload 3.11 and Astro 5, so expect to update it.

It's open source with no seat fees. Payload is part of Figma now, Payload Cloud has paused new projects, and the visual editor and publishing workflows are Enterprise features. If you're choosing Astro because you want one small, fast site, running a Next.js app beside it is a lot of extra machinery. Our Next.js CMS guide covers Payload where it fits best.

Payload CMS with Astro: the admin runs in a separate Next.js app

7. Contentful

Best for: a large organisation with dozens of publishers, several brands, and a need for SSO, custom roles and approval chains.

There's no Astro package. Astro's guide uses Contentful's JavaScript client, fetching published content at build time. Live preview and inspector mode (click-to-edit) come from Contentful's Live Preview SDK, which has React and plain JavaScript examples and none for Astro, and draft preview needs server-rendered pages.

The pricing is the steepest step here: Lite is $300 a month for up to 20 users, approval workflows need the $850 Lite Space, and past 20 users it's Enterprise.

Contentful CMS with Astro: structured content for large publishing teams

8. Strapi

Best for: teams that want an open-source CMS they host, with roles and languages included free.

Strapi's Community edition is free with unlimited users. There's no official Astro package; Astro's guide fetches from Strapi's API, and two community loaders plug it into content collections. Live Preview, side by side with the edit form, is on the paid Growth plan and still marked experimental. Review workflows are Enterprise. You run Strapi as its own Node server with its own database, or pay $90 a month for Strapi Cloud Pro.

Strapi CMS with Astro: an open-source, self-hosted headless CMS

9. WordPress as a headless CMS

Best for: a team with years of WordPress content, moving the front end to Astro first.

Astro reads WordPress through its REST API, or through the WPGraphQL plugin. Editors keep wp-admin, but the theme, page builders and the SEO plugin's output stop reaching the site, so every block needs a matching Astro component and the title and meta tags get rebuilt in Astro. There's no visual editing on the Astro side. It's a good first step off WordPress, and two systems to patch for as long as it runs. Coming from Webflow instead? Our Webflow to Astro migration page covers that move.

WordPress as a headless CMS for an Astro site

10. Keystatic and Decap: Git-based, form-first

Best for: a developer blog, docs, or a small site whose content belongs in the repository.

Both edit Markdown or MDX files and save each change as a commit. Keystatic's official @keystatic/astro mounts its admin at /keystatic, which needs an adapter; it's free in GitHub mode, or $10 a month plus $5 per user beyond three on Keystatic Cloud. Its live-preview recipe covers Next.js only. Decap is a script on an /admin page with a preview pane beside the form, free and MIT-licensed. Netlify has deprecated the Git Gateway many Decap sites used for logins; it still works, with security fixes only.

Keystatic CMS with Astro: Git-based editing at /keystatic

What we built on an Astro site, and why

The Accountant Quits is a podcast site we rebuilt off Webflow for a client in July 2026, on Astro 5, Sanity and Vercel. The site went from first commit to finished in six days (July 23 to 28). Sanity went in on day two, and click-to-edit on every main page worked by day four. The client's team runs the site now; the numbers below come from the live site and our copy of the code, checked on October 19, 2026.

The content model. Four document types: episodes, guests, companies and pages. The live dataset holds 114 episodes, 107 guests, 100 companies, 4 pages and 374 images and files. Pages are built from 11 section types (hero, guest wall, episode list, sponsorship and so on). Guests and companies are references, so editing a guest's role updates every episode they appear on, and a new company with its logo can be created from inside the episode form.

Two rendering modes. The 110 episode pages are prerendered. The four pages built from sections (home, contact, media kit, sponsorship) render on request, so an editor with a preview cookie sees drafts and visitors get the published version, cached at the edge for five minutes. We started with everything prerendered and hit the limit described above: Presentation loaded the page, but nothing on it was clickable, because a prerendered page carries none of the hidden markers that map text back to fields.

What visitors download. On October 19 the homepage loaded one script, 19 KB unpacked and 6 KB compressed, and no CMS code. The Studio lives on the same site at /admin and loads 1.7 MB of JavaScript (5.3 MB unpacked), only for the people who open it. For comparison, khod.io runs on Next.js, and we found Sanity's preview tooling going to every visitor there until we fixed it; our Astro vs Next.js comparison has the numbers.

Chrome DevTools Network panel on The Accountant Quits homepage, filtered to JavaScript: one script request, 19.1 kB of resources

Publish to live. A publish fires a Sanity webhook, which calls a Vercel deploy hook, and the rebuilt site is live in about two minutes. The build itself is the small part: on October 19 we ran the build from our copy of the code three times on a MacBook, and it took 11.3 to 12.1 seconds. Prerendering the pages took under half a second; bundling the Studio took about eight. Most of the two minutes is Vercel installing, building and deploying.

Astro build log for The Accountant Quits: Sanity Studio bundles in 8.13 s, prerendering the static pages completes in 395 ms

What went wrong, so you can skip it:

  • A missing type in the webhook filter. Sanity's webhook listened for episodes, guests and pages. When we added companies, logo edits published fine and never triggered a rebuild, so the live site didn't change and nothing reported an error. If you add a document type, add it to the filter.
  • Click-to-edit markers must stay out of the build. Sanity hides field pointers inside text as invisible characters. On a prerendered build they'd be baked into the public HTML, so they're switched on only for preview requests.
  • Astro's CSRF check. Astro rejects a POST without a Content-Type header as a cross-site form submission. Our "publish logo sizes" button failed with a 403 until the request sent JSON.
  • The preview cookie needs a signature. Routes that write to Sanity trust it, so it carries an expiry and a signature that only the server can produce.

We also built one tool Sanity doesn't have: in Presentation, editors resize client logos by dragging a corner, and the sizes save to drafts and publish together as one rebuild.

We picked Sanity because our team already ran it on khod.io, so the client got a Studio we knew well, and Presentation gave their editors click-to-edit on the pages they change most. We'd make the same call today for a marketing site. We'd look at CloudCannon for a client who wants visual editing on a fully static site, and at EmDash once a client wants to run the whole thing on Cloudflare.

Moving your content in

Picking the CMS is the shorter half of the project. The longer half is getting years of pages, posts and images into it without breaking the URLs that bring in search traffic.

From Webflow, CMS collections export as CSV, but rich text, references between collections and every static page need mapping into the new content model. On The Accountant Quits we also carried over every Webflow redirect and pointed eight retired tool pages at the client's tools directory. Our Webflow to Sanity migration covers the content side. From WordPress, the REST API exposes posts, pages and media, but shortcodes and page-builder layouts don't survive and have to be rebuilt as sections.

Whichever way you come in, every indexed URL needs a redirect or an identical path on the new site. Our website migration checklist lists the 50 checks we run. When you'd rather hand the move over, our website migration services page covers what we take on.

Frequently asked questions

What is the best CMS for Astro?

For a marketing site where editors build pages, Sanity: click-to-edit in Presentation, sections a developer can extend, $15 per editor a month. Pick CloudCannon to keep the site fully static with on-page editing, Storyblok if marketers build pages without a developer, and EmDash for a CMS inside the Astro app with no rebuilds.

Does Astro have a built-in CMS?

No. Astro has content collections, which read Markdown, MDX, JSON or YAML files with a schema, plus loaders that pull content from a CMS. There's no editing screen. EmDash, from Cloudflare, and the community-built StudioCMS are CMSs built on Astro that install into your Astro app.

Does an Astro site need a CMS?

Not if everyone who publishes is a developer. Content collections in Git work well for docs and developer blogs. Add a CMS when people outside the code need to publish, so they can change pages without a commit and a deploy.

Do I need server rendering to use a CMS with Astro?

Not to publish: a fully static Astro site can rebuild on a CMS webhook. You do need it for click-to-edit preview with Sanity, TinaCMS, EmDash, StudioCMS and Payload, and for live content collections. CloudCannon is the exception: its visual editing works on a static build.

Can I use Sanity with Astro?

Yes. The official @sanity/astro integration mounts Sanity Studio on a route of your site and adds click-to-edit through the Presentation tool on server-rendered pages. We built The Accountant Quits, a 118-page Astro site, on it, and a publish there goes live in about two minutes.

Can I use WordPress with Astro?

Yes, as a headless CMS through the WordPress REST API or WPGraphQL. Editors keep wp-admin, but themes, page builders and SEO plugins stop shaping the site, so each block needs an Astro component and meta tags move into Astro. There's no official Astro package.

Is there a free CMS for Astro?

Yes. Decap, Keystatic in GitHub mode, EmDash, StudioCMS, Payload, Strapi Community and headless WordPress are free, and you pay for hosting. Sanity's Free plan holds 20 users with admin and viewer roles only, and includes visual editing.

What is EmDash?

EmDash is a free, MIT-licensed CMS from Cloudflare, built on Astro. It installs into an Astro 6+ app running in server mode, keeps content in SQLite, D1 or Postgres, and serves pages through a live loader, so publishing needs no rebuild. Version 1.0 shipped on September 28, 2026.

Want us to set it up?

We build marketing sites on Astro and Next.js, with Sanity behind both. Tell us who edits your site and we'll set up the CMS around them.

Book a call

Share the Article

https://www.khod.io/resource-center/articles/astro-cms

See Khod First on Google

Add as Preferred Source

Uros is the brains behind the builds, turning Figma files into clean, scalable sites. He builds Webflow sites so smooth, you’ll think they coded themselves.

Outside the Webflow canvas, you’ll find him testing out new recipes, planning his next weekend escape, or deep in thought wondering why websites break at 3AM and not during office hours.

Explore Related Articles

Tool Comparisons • Oct 14, 2026 • 13 min read

Astro vs Next.js: Which One Fits Your Website in 2026

Tool Comparisons • Oct 7, 2026 • 18 min read

Next.js CMS: Choosing a Headless CMS for Your Next.js Marketing Site

Website Strategy • Oct 4, 2026 • 13 min read

Website Redesign SEO: How to Redesign or Migrate Without Losing Rankings

Your Next Deal Starts With Your Website

Most deals are won or lost before your sales team gets involved. Let's make sure your site is ready for that moment.