Astro CMS comparison: Markstage beside 21 editors and CMSs
An Astro CMS comparison with a source for every cell: editing, content and git, Astro output, team workflow, hosting, price and licence, checked on .
A note on the names in this document. WordPress, Ghost, Prismic, TinaCMS, CloudCannon, Decap CMS, Sveltia CMS, Keystatic, Pages CMS, Front Matter CMS, Outstatic, Sitepins, EmDash, StudioCMS, Storyblok, Sanity, Contentful, Builder.io, Payload, Strapi, Statamic and Astro are trademarks of their owners. We name them only to compare. Markstage is not associated with, affiliated with or endorsed by any of them. Many of them are excellent, and this page says where each one fits better than Markstage. If a fact is out of date, please open an issue.
How Markstage, a visual editor for Astro sites whose content is Markdown and JSON files in git, stands beside the editors and content systems people use with Astro. A short version is in the README.
Facts about other products come from each vendor's own website, pricing page, docs or code repository, and from Astro's own docs, all checked on 2026-11-03 (Ghost's on 2026-11-04). No review sites or third-party lists were used as a source. Markstage's column claims only what is in this repository's code and docs on that date. Every cell links its source in the footnotes. Prices are the list prices shown on that date, monthly unless the cell says otherwise; they change often, so check the vendor's page before you buy.
| Mark | Means |
|---|---|
| ✓ | Yes |
| ◐ | Partly, or only on some plans or as an add-on (see the note in the cell) |
| ✗ | No, or not found where the vendor lists its features |
| ? | Not confirmed on the vendor's own pages |
| – | Does not apply |
Status. Markstage is pre-release and in active development (README). Most products below have years of production use and much larger communities. Weigh that as well as the features.
The short answer
- Astro has no editor of its own. Its docs describe a CMS as a separate tool that "lets you write content and manage assets outside of your Astro project", and list 45 of them 1. Content collections give Markdown, MDX, YAML and JSON files a schema and type safety, but no screen for a writer 2.
- Markstage is for a team that wants all of these at once: writers edit on the site's own design; a save changes only what was edited (a clean git diff) and, with the Markstage server, is committed as the person who saved; no database server holds the content; staging and release rules are included; and it all runs on your own server for free.
- WordPress, Ghost and Prismic are the three people weigh most often. WordPress and Ghost are mature publishing platforms with large communities; with Astro, both are used headless (Astro reads their content by API, and writers work in their own admin). Prismic is a hosted page builder. The next section puts the three side by side with Markstage.
- The closest products are CloudCannon (git-based, edits on a preview of your built site, hosted only, from $55 a month), TinaCMS (git-based, click-to-edit on Astro pages, hosted or self-hosted), and Storyblok, Sanity and Prismic (visual editing on a hosted content database).
Markstage vs WordPress, Ghost and Prismic
The rows a team usually decides on. Each cell is the same, with the same source, as in the full tables below.
- Yes
- Partly
- No
- Not confirmed
- Does not apply
| Feature | Markstage | WordPress | Ghost | Prismic |
|---|---|---|---|---|
| Editing | ||||
| Edits on the site's own design | Yes The site's own components and CSS 4 | No Headless: written in WordPress's admin 93 | No Headless: written in Ghost's own editor 97 103 | Partly Page Builder: drag sections, live preview 71 |
| Content and git | ||||
| Content as files in git | Yes 3 | No Read by REST API 93 | No MySQL database, read by the Content API 100 101 | No Hosted, read by API 70 |
| Astro | ||||
| Guide in Astro's own CMS docs | No Not listed yet 1 | Yes 93 | Yes 103 | Partly Community resources only 72 |
| Team and workflow | ||||
| Roles | Yes Five built in, plus custom roles 11 | Yes Six roles 92 | Yes Contributor, Author, Editor, Administrator, Owner 98 96 | Partly From Medium ($150); custom on Enterprise 70 |
| Single sign-on | Yes OpenID Connect, included 12 | Not confirmed 91 | Partly Custom plan on Ghost(Pro) 96 | Partly Enterprise 70 |
| Environments or staging | Yes Local, staging, production; free 7 | Not confirmed 91 | Not confirmed 96 | Partly Paid option on Platinum ($675); 2 on Enterprise 70 |
| Releases (publish many changes at once) | Yes With a preview and share links 14 | Not confirmed 91 | Not confirmed 97 | Yes 71 |
| Forms inbox | Yes 13 | Not confirmed 91 | Not confirmed 97 | No 70 |
| WordPress import | Yes A WordPress export or the REST API: posts, pages, media, authors, categories, tags, SEO fields and old addresses as redirects; a dry run first; proven on a real 148-post site's export (SVG pictures stay at their old address) 19 17 | Does not apply | Yes Built-in importer for a WordPress XML export 102 | Partly A general Migration API 70 |
| Hosting and price | ||||
| What you run | One Node server next to your static site 8 | A WordPress site (PHP with MySQL or MariaDB) 93 94 | A Ghost server (Node.js and MySQL 8), or Ghost(Pro) 100 96 | Nothing; hosted 70 |
| Self-host | Yes 8 | Yes 93 | Yes Ubuntu with Ghost-CLI, or Docker (preview) 99 | No 70 |
| Price to start | Free 3 | Free software; you pay for hosting 91 | Free software; Ghost(Pro) Starter $18/mo ($15 yearly) 96 | Free; Starter $10/mo per repository, yearly 70 |
| Licence | ||||
| Licence | Elastic License 2.0 Source-available, free to self-host 20 | GPLv2 or later 91 | MIT 95 | Closed, hosted service 70 |
No product of this kind is in this table. Choose All to see it again.
How to choose among these four:
- WordPress if you want its very large ecosystem of themes, plugins, hosts and people who know it, or a familiar admin for content that Astro reads by API.
- Ghost if the site is a publication: newsletters, memberships and paid subscriptions are built in 97, with its own editor and themes, self-hosted or on Ghost(Pro). Its code is under the MIT licence 95.
- Prismic if you want a hosted page builder with nothing to run, and your developers build the sections ("slices") 71.
- Markstage if writers should edit on the Astro site's own design, content should stay as files in git, and staging, roles and single sign-on should come included on your own server. Markstage is pre-release; WordPress and Ghost have many years of production use and much larger communities.
Group A: git-based editors
These keep content as files in a git repository, like Markstage.
| Feature | Markstage | TinaCMS | CloudCannon | Decap CMS | Sveltia CMS | Keystatic | Pages CMS | Front Matter CMS | Outstatic | Sitepins |
|---|---|---|---|---|---|---|---|---|---|---|
| Editing | ||||||||||
| Edits on the site's own designThe writer sees the real page while editing | Yes The site's own components and CSS; text and rich text typed on the page, other fields in a side panel. Components mark their fields with a helper 4 | Yes Click a region of the Astro page; its field opens in a sidebar form and the page updates live. Each page is set up with a data loader and an island or server route 22 | Yes Editable regions on a preview of your built site; Astro components re-render live 28 29 | Partly Form with a real-time preview pane; custom preview templates and styles 30 34 | Partly Two-pane editor with live preview, scroll sync and click-to-highlight 38 | No Admin UI with fields and a WYSIWYG editor 42 | No Forms with a rich-text editor 48 | Partly Site preview inside VS Code 51 | No Dashboard editor 54 | No WYSIWYG over your files; "not a page builder" 59 |
| Media library | Yes Upload, paste or drop; alt text required; images re-encoded 4 | Yes Repo-based media 24 | Partly Connect outside asset stores (DAM) on paid plans 27 | Yes Drag-and-drop uploads 30 | Yes Asset library, stock photos 38 | Partly Cloud Images on Keystatic Cloud Pro 43 | Yes Media manager 48 | Yes Media dashboard 51 | Not confirmed 54 | Not confirmed 57 |
| SEO checks while writing | Yes Counters, search preview, checks run on the built HTML; publishing stops on real errors 10 | Not confirmed 21 | Not confirmed 27 | No 30 | No 38 | No 42 | No 48 | Yes 51 | Not confirmed 54 | Yes Search preview and tips 57 |
| Content and git | ||||||||||
| Content as files in git | Yes 3 | Yes 25 | Yes GitHub, GitLab, Bitbucket 27 | Yes GitHub, GitLab, Bitbucket and more 32 | Yes 37 | Yes Local or GitHub 42 | Yes GitHub only 48 | Yes Your local files 51 | Yes GitHub 55 | Yes GitHub, GitLab 59 |
| A save is a commit by the person who saved | Yes Only the changed blocks are rewritten; open and save with no edit changes nothing 6 | Yes To GitHub, through TinaCloud or a self-hosted backend 26 | Yes 27 | Yes 32 | Yes 37 | Partly In GitHub mode 44 | Yes 48 | Does not apply You commit yourself 51 | Partly Email or Google sign-ins commit as the Outstatic Bot 55 | Yes Through your connected git account 59 |
| Markdown with front matter | Yes 4 | Yes 25 | Yes 29 | Yes 36 | Yes 40 | Yes 42 | Yes 48 | Yes 51 | Yes 54 | Yes 59 |
| MDX | Partly Words and simple component settings edited; code kept as written; components shown as cards, not rendered, on the canvas 5 | Yes 25 | Not confirmed Its docs have an article on MDX component snippets 28 | Not confirmed 32 | Not confirmed Formats listed: Markdown, YAML, JSON, TOML 40 | Yes MDX and Markdoc fields 44 | Not confirmed 48 | Not confirmed 51 | Yes 55 | Not confirmed 59 |
| JSON and YAML data files | Yes JSON pages edited on the page; reads and writes Keystatic's JSON with zero diff 6 | Yes 25 | Yes Data editor 29 | Not confirmed 32 | Yes 40 | Yes 42 | Not confirmed 48 | Yes Data dashboard 51 | Not confirmed 54 | Not confirmed 59 |
| Database to run | No database server Content in git; one SQLite file holds people, sessions, the inbox, drafts in progress, trash, releases, the media index and the audit log 3 | Partly Self-hosting needs a database adapter (e.g. MongoDB, Postgres) as a cache 23 | Does not apply Hosted for you 27 | None Decap Turbo adds a hosted store 35 | None 38 | None 42 | Partly Self-hosting needs PostgreSQL 49 | None 51 | None 54 | None for content 59 |
| Astro | ||||||||||
| Guide in Astro's own CMS docs | No Not listed yet 1 | Yes 26 | Yes A featured CMS partner 29 | Yes 36 | No Says it works with Astro 37 | Yes 46 | Yes 50 | Yes 53 | No Names Astro on its site 54 | Yes 60 |
| Astro integration package | Yes @markstage/astro: the editor inside astro dev 4 | Yes @tinacms/astro 22 | Yes @cloudcannon/editable-regions 29 | No An admin page you add 36 | No 37 | Yes 46 | No 50 | No A VS Code extension 53 | No 54 | No 60 |
| The live site can stay fully static | Yes Editor markup only in editor mode; the production build is byte-identical 4 | Partly Visual editing wants output: 'server' and an adapter, or every region wrapped in <TinaIsland> 22 | Yes Builds and serves the static output 27 | Partly Off Netlify, sign-in needs your own OAuth routes on an adapter 36 | Yes No server 38 | Partly Pages stay static; its admin routes are rendered on demand, which needs an adapter 46 47 | Yes 48 | Yes 51 | Not confirmed 54 | Yes 59 |
| Team and workflow | ||||||||||
| Sign-in for people without a git account | Yes Email and password, two-step sign-in 4 | Yes TinaCloud, or Auth.js when self-hosted 23 | Yes 27 | Partly Your own auth, or Decap Turbo 35 | No OAuth with the git host 41 | Partly Keystatic Cloud 43 | Yes Email invites 48 | Does not apply 51 | Partly Pro: email and Google 55 | Yes Invite by email 57 |
| Roles | Yes Five built in, plus custom roles 11 | Partly 3 roles; custom roles on Enterprise (beta) 21 | Partly Default roles; custom permissions from Team 27 | Partly Turbo: owner, member, full access; custom roles €19 add-on 35 | Not confirmed 38 | No Access is per team 43 | No "Soon" 48 | Does not apply 51 | Partly Pro 55 | Yes 57 |
| Single sign-on | Yes OpenID Connect, included 12 | Partly Enterprise 21 | Partly SSO/SAML on Enterprise 27 | No 35 | No 38 | No 43 | No 48 | Does not apply 51 | Partly Google sign-in on Pro 55 | Not confirmed 57 |
| Review before going live | Yes Send to staging for review; approve; promotion rules 7 | Partly Editorial workflow: protected branches and pull requests, on TinaCloud Team and up 24 21 | Partly Branching workflows on Team 27 | Yes Editorial workflow: a branch and pull request per entry 33 | Yes Editorial workflow (GitHub, GitLab, Gitea/Forgejo) 39 | Not confirmed 42 | No 48 | Does not apply 51 | Partly "Team workflows" on Pro 55 | Yes Branch previews, review and revert 57 |
| Staging and production as separate places | Yes Local, staging and production, each a branch plus a server; content and code promoted together; sync down by merge 7 | Partly Branches with preview links 24 | Partly Branch sites on Team 27 | Partly Deploy preview links 33 | Not confirmed 41 | Not confirmed 42 | No 48 | Does not apply 51 | Not confirmed 55 | Partly Branch previews 57 |
| Live co-editing (cursors) | No today Planned Locks and a three-way merge instead 3 | Not confirmed 21 | Not confirmed 27 | No 30 | No 38 | No 42 | No Comments "soon" 48 | Does not apply 51 | No 54 | Yes Live cursors and avatars 57 |
| Forms inbox for site visitors | Yes Forms post to Markstage; Inbox, alerts, thank-you mail 13 | No 21 | Yes Form inboxes 27 | No 30 | No 38 | No 42 | No 48 | No 51 | No 54 | No 57 |
| Translations | Yes Per-language status: missing, outdated, done 15 | Not confirmed 21 | Not confirmed 27 | Not confirmed 30 | Yes First-class i18n 38 | Not confirmed 42 | Not confirmed 48 | Not confirmed 51 | Not confirmed 54 | Not confirmed 57 |
| AI agents through MCP | Yes Agents draft as the person whose token they hold; publish only if an owner allows it 16 | Not confirmed 21 | Not confirmed 27 | No 30 | Partly Agent Skill and llms.txt 37 | No 42 | No 48 | No 51 | Partly AI completion on Pro 55 | Partly A setup skill 57 |
| Hosting and price | ||||||||||
| Self-host | Yes One docker run with the server image, Docker Compose, or systemd and nginx 9 8 | Yes "Some features are not available" 23 | No No self-hosted version listed 27 | Yes 35 | Yes A single-page app; no server 38 | Yes 42 | Yes 49 | Does not apply Runs in your editor 51 | Yes 55 | Yes 59 |
| Hosted plan | No Self-host only 3 | Yes TinaCloud 21 | Yes Hosted only 27 | Partly Decap Turbo hosts auth and a proxy 35 | Does not apply 38 | Partly Keystatic Cloud for sign-in and images 43 | Yes app.pagescms.org 49 | Does not apply 51 | Yes Pro 55 | Yes Sitepins Cloud 58 |
| Price to start | Free to self-host 3 | Free (2 users); Team $29/mo 21 | Standard $55/mo ($49 yearly), 3 users 27 | Free; Turbo Pro €19/mo 35 | Free 37 | Free; Cloud Pro from $10/mo 43 | Free 48 | Free 51 | Free self-hosted; Pro $9.99/user/mo 55 | Free self-hosted; Cloud $12/mo 58 |
| Per-seat or per-user fees | None 3 | $9 to $18 per extra user 21 | $10 per extra user 27 | Turbo €6 per extra seat 35 | None 37 | Cloud: $5 per user beyond 3 43 | None 48 | None 51 | Pro is per user 55 | Users per plan 58 |
| Licence | ||||||||||
| Licence | Elastic License 2.0 Source-available, free to self-host 20 | Apache 2.0 25 | Closed, hosted service 27 | MIT 31 | MIT 37 | MIT 45 | MIT 49 | MIT 52 | FSL-1.1-ALv2 Source-available; becomes Apache 2.0 two years after each release 56 | AGPL-3.0 59 |
No product of this kind is in this table. Choose All to see it again.
Group B: content databases and APIs
These keep content in a database, their own or a hosted one, and Astro reads it through an API or an integration.
| Feature | Markstage | WordPress | Ghost | Prismic | EmDash | StudioCMS | Storyblok | Sanity | Contentful | Builder.io | Payload | Strapi | Statamic |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Editing and content | |||||||||||||
| Edits on the site's own design | Yes 4 | No Headless: written in WordPress's admin 93 | No Headless: written in Ghost's own editor 97 103 | Partly Page Builder: drag sections, live preview 71 | Partly "Inline visual editing" in its README; the docs we read edit in the admin 61 62 | No Dashboard 65 | Yes Visual Editor: click a component on your site, its block opens 68 | Yes Presentation tool with overlays, on a server-rendered Astro site 74 | Not confirmed 77 | Yes Drag-and-drop visual editor on a preview page of your site 81 | Partly Live Preview in an iframe; a Visual Editor is "coming soon" for Enterprise 84 85 | Partly Live Preview on Growth and up 89 | Partly Live Preview 105 |
| Content as files in git | Yes 3 | No Read by REST API 93 | No MySQL database, read by the Content API 100 101 | No Hosted, read by API 70 | No SQL database 61 | No libSQL, MySQL or PostgreSQL 65 | No Hosted, read by API 67 | No Hosted Content Lake 73 | No Hosted, read by SDK 78 | No Your Builder space 81 | No MongoDB, Postgres or SQLite 83 | No Read by API 90 | Yes Flat files; git automation on Pro 105 104 |
| What you run | One Node server next to your static site 8 | A WordPress site (PHP with MySQL or MariaDB) 93 94 | A Ghost server (Node.js and MySQL 8), or Ghost(Pro) 100 96 | Nothing; hosted 70 | The Astro site on Cloudflare Workers, or Node with SQLite 61 | Astro in server mode, plus a database 65 | Nothing; hosted 67 | Nothing for content; hosted 73 | Nothing; hosted 78 | Nothing; hosted 79 | A Next.js app and its database 82 83 | A Strapi server, or Strapi Cloud 87 | A Laravel (PHP) app 105 |
| Astro | |||||||||||||
| Guide in Astro's own CMS docs | No Not listed yet 1 | Yes 93 | Yes 103 | Partly Community resources only 72 | Yes 63 | Yes 66 | Yes 69 | Yes 76 | Yes 78 | Yes 81 | Yes 86 | Yes 90 | Yes 106 |
| Official Astro integration | Yes 4 | No REST API 93 | No Content API client, @tryghost/content-api 103 | No 72 | Yes Built on Astro 61 | Yes Built for Astro 64 | Yes @storyblok/astro 69 | Yes @sanity/astro 76 | No Contentful SDK 78 | No A preview page you add 81 | No An example project 86 | No A wrapper you write 90 | No REST or GraphQL API, on Pro 106 104 |
| Team and workflow | |||||||||||||
| Roles | Yes Five built in, plus custom roles 11 | Yes Six roles 92 | Yes Contributor, Author, Editor, Administrator, Owner 98 96 | Partly From Medium ($150); custom on Enterprise 70 | Yes Administrator, Editor, Author, Contributor 61 | Not confirmed 65 | Partly Custom roles on Premium and Elite 67 | Yes 2 roles free, 5 on Growth, custom on Enterprise 73 | Not confirmed 77 | Partly Admin only on Free and Pro; four roles on Team; custom roles and RBAC on Enterprise 79 | Yes Granular access control 82 | Yes Role-based access in the free edition 87 | Partly Core: one admin; Pro: unlimited users and roles 104 |
| Single sign-on | Yes OpenID Connect, included 12 | Not confirmed 91 | Partly Custom plan on Ghost(Pro) 96 | Partly Enterprise 70 | No Passkeys, OAuth and magic links; no single sign-on listed 61 | Not confirmed 65 | Partly Premium and Elite 67 | Partly SAML on Enterprise 73 | Not confirmed 77 | Partly Enterprise 79 | Partly Enterprise feature 85 | Partly $150/mo add-on 87 | Not confirmed 104 |
| Environments or staging | Yes Local, staging, production; free 7 | Not confirmed 91 | Not confirmed 96 | Partly Paid option on Platinum ($675); 2 on Enterprise 70 | Not confirmed 61 | Not confirmed 65 | Partly Premium and Elite 67 | Partly 2 datasets; more at $999 each a month 73 | Not confirmed 77 | Not confirmed 79 | Not confirmed 85 | Not confirmed 87 | Not confirmed 104 |
| Releases (publish many changes at once) | Yes With a preview and share links 14 | Not confirmed 91 | Not confirmed 97 | Yes 71 | Not confirmed 61 | Not confirmed 65 | Partly Premium and Elite 67 | Partly Content Releases on Enterprise 73 | Not confirmed 77 | Not confirmed 79 | Not confirmed 85 | Partly Growth and up 89 | Not confirmed 104 |
| Real-time collaboration | No today Planned Locks and a three-way merge 3 | Not confirmed 91 | Not confirmed 97 | Not confirmed 70 | Not confirmed 61 | Not confirmed 65 | Not confirmed 67 | Yes Real-time content database; comments and tasks on Growth 73 | Not confirmed 77 | Not confirmed 79 | Not confirmed 82 | Not confirmed 87 | Not confirmed 104 |
| MCP server for AI agents | Yes 16 | Not confirmed 91 | Not confirmed 97 | Yes Claude and ChatGPT plugins 70 | Yes 61 | Not confirmed 65 | Not confirmed 67 | Yes 73 | Not confirmed 77 | Partly Built-in MCP servers from Pro; custom ones on Team 79 | Not confirmed 82 | Not confirmed 87 | Not confirmed 104 |
| Forms inbox | Yes 13 | Not confirmed 91 | Not confirmed 97 | No 70 | No 61 | Not confirmed 65 | No 67 | No 73 | Not confirmed 77 | Not confirmed 79 | Not confirmed 82 | No 87 | Yes Core: one form 104 |
| WordPress import | Yes A WordPress export or the REST API: posts, pages, media, authors, categories, tags, SEO fields and old addresses as redirects; a dry run first; proven on a real 148-post site's export (SVG pictures stay at their old address) 19 17 8 | Does not apply | Yes Built-in importer for a WordPress XML export 102 | Partly A general Migration API 70 | Yes Import wizard 61 | Not confirmed 65 | Not confirmed 67 | Not confirmed 73 | Not confirmed 77 | Not confirmed 79 | Not confirmed 82 | Partly General data import 87 | Not confirmed 104 |
| Hosting, price and licence | |||||||||||||
| Self-host | Yes 8 | Yes 93 | Yes Ubuntu with Ghost-CLI, or Docker (preview) 99 | No 70 | Yes 61 | Yes 65 | No 67 | No Content is hosted 73 | No 78 | No 79 | Yes 82 | Yes 87 | Yes 104 |
| Price to start | Free 3 | Free software; you pay for hosting 91 | Free software; Ghost(Pro) Starter $18/mo ($15 yearly) 96 | Free; Starter $10/mo per repository, yearly 70 | Free 61 | Free 64 | Free Starter; Growth $99/mo 67 | Free; Growth $15 per seat/mo 73 | Not confirmed Its pricing page refused our checks (HTTP 429) 77 | Free; Pro $24 per user/mo 79 | Free 82 | Free; Growth $45/mo 87 | Core free; Pro $349 per site, then $99 a year 104 |
| Licence | Elastic License 2.0 Source-available 20 | GPLv2 or later 91 | MIT 95 | Closed, hosted service 70 | MIT 61 | MIT 64 | Closed, hosted service 67 | Studio: MIT; Content Lake hosted 75 | Closed, hosted service 78 | SDKs: MIT; service closed 80 | MIT 82 | Community Edition: MIT; Enterprise paid 88 | Commercial licence; Core free 104 |
No product of this kind is in this table. Choose All to see it again.
Licences are as each project's GitHub repository states them; the licence of Markstage itself is the Elastic License 2.0 (source-available).
Where Markstage leads
Each line names the capability and which of the 21 products above have it, as checked on 2026-11-03 (Ghost on 2026-11-04).
- Editing on the site's own design, from your own server, with no database server. Of the 21 products, those that edit on the real page are TinaCMS, CloudCannon, Storyblok, Sanity and Builder.io; Decap CMS, Sveltia CMS, Front Matter, Prismic, Payload, Strapi, Statamic and EmDash do it partly (a preview beside a form, or on some plans). Of those, CloudCannon, Storyblok, Sanity and Builder.io are hosted services, and self-hosted TinaCMS needs a database adapter as a cache. Markstage keeps content in git and its own working data (people, sessions, the inbox, drafts in progress, releases) in one SQLite file.
- The live site stays static. Markstage's editor markup appears only in editor mode, so the production build
is byte-identical 4. TinaCMS visual editing wants server output or
<TinaIsland>wrappers, Keystatic keeps pages static but needs an adapter for its admin routes, and EmDash and StudioCMS run the site as a server. - Staging and production for content and code together, free. A promotion is a git merge, so templates, models and chosen pages move together, and content syncs back down by merge, not by overwrite 7. Storyblok and Prismic sell environments on their top plans, Sanity charges $999 a month per extra dataset, and CloudCannon has branch sites on its Team plan ($350 a month).
- Surgical saves. Opening and saving changes nothing; a save rewrites only the changed blocks (a clean git diff) and, with the Markstage server, is committed as the person who saved 6. JSON written by Keystatic stays byte-identical when Markstage saves it.
- A site's back office in one tool. Forms inbox, media, menus, moved addresses, translations status, SEO checks, releases with share links, backups and rollback, single sign-on and custom roles, all included 3 13 12 11. Among the git-based editors only CloudCannon also has a forms inbox.
Where others go further
- Hosted, nothing to run. CloudCannon, TinaCloud, Storyblok, Prismic, Sanity, Contentful and Builder.io run everything for you, and Ghost(Pro) hosts Ghost 96. Markstage needs a server you look after.
- Newsletters and paid memberships. Ghost has newsletters, memberships and paid subscriptions built in 97. Markstage has none of these.
- No server at all. Decap CMS and Sveltia CMS are a single page that talks to your git host; Front Matter runs inside VS Code. Markstage needs Node and git on a server.
- MDX. TinaCMS, Keystatic and Outstatic edit MDX and have done so for longer. Markstage's MDX support is new: it edits the words and a component's simple settings, keeps the code as written, and shows components as cards on the canvas rather than as the site renders them 5.
- Live co-editing. Sanity's real-time content database and Sitepins' live cursors let people edit together. Markstage uses locks and a three-way merge.
- Size and age. WordPress and Ghost are mature publishing platforms used by very many sites. Strapi (73.4k GitHub stars), Ghost (55.7k), Payload (45.6k), Decap CMS (19.4k), EmDash (14.1k) and TinaCMS (13.9k) have large communities 107. WordPress, Contentful and Sanity have big partner and plugin ecosystems, and Ghost has a theme marketplace 96. Markstage is pre-release.
- Other frameworks. Most products here also serve Next.js, Hugo, Eleventy and others. Markstage has one adapter today, Astro; adapters beyond Astro are on its roadmap.
Who should use what
| If you want | Look at |
|---|---|
| Writers editing on your Astro site's real design, content in git, run on your own server for free | Markstage |
| A familiar admin with a very large plugin and theme ecosystem, read by Astro as a headless CMS | WordPress |
| A publication with newsletters, memberships and paid subscriptions built in | Ghost |
| A hosted page builder with sections your developers make, nothing to run | Prismic |
| The same idea, fully hosted, with hosting and a CDN included | CloudCannon |
| Click-to-edit on Astro pages with MDX, hosted or self-hosted | TinaCMS |
| No server at all: a single admin page over your git host | Sveltia CMS, Decap CMS |
| A typed admin for Markdown, Markdoc or MDX inside your Astro project | Keystatic |
| A content database built into Astro, WordPress-style | EmDash, StudioCMS |
| A hosted visual CMS with a large team and many locales | Storyblok, Prismic, Sanity, Contentful |
| A full application backend as well as a CMS | Payload, Strapi |
Also checked, not in the tables
Astro's CMS list names 45 products 1. Most of the rest (ButterCMS, Caisy, Cosmic, DatoCMS, Directus, Hygraph, Kontent.ai and others) are hosted or database CMSs that compare to Markstage as Contentful does. Crafter CMS is git-based but is not in Astro's list.
Sources
- Astro: Astro docs: Use a CMS with Astro
- Astro: Astro docs: Content collections
- Markstage: README
- Markstage: Architecture
- Markstage: MDX
- Markstage: API contract
- Markstage: Environments
- Markstage: Deploying
- Markstage: Docker
- Markstage: SEO checks
- Markstage: Custom roles
- Markstage: Single sign-on
- Markstage: Messages and forms
- Markstage: Releases
- Markstage: Translations
- Markstage: MCP server
- Markstage: Library and WordPress import
- Markstage: Import API
- Markstage: Importing a site from WordPress, Ghost or Prismic; tested on a real 148-post WordPress site's export on 2026-11-04 ("Proof on a real site" there)
- Markstage: Licence
- TinaCMS: pricing
- TinaCMS: Astro guide
- TinaCMS: self-hosting overview
- TinaCMS: editorial workflow
- TinaCMS: GitHub repository
- Astro: TinaCMS and Astro
- CloudCannon: pricing
- CloudCannon: What is visual editing?
- Astro: CloudCannon and Astro
- Decap CMS: home page
- Decap CMS: GitHub repository
- Decap CMS: introduction
- Decap CMS: editorial workflows
- Decap CMS: custom previews
- Decap CMS: Decap Turbo plans
- Astro: Decap CMS and Astro
- Sveltia CMS: GitHub repository
- Sveltia CMS: features
- Sveltia CMS: editorial workflow
- Sveltia CMS: entry collections
- Sveltia CMS: getting started
- Keystatic: home page
- Keystatic: Keystatic Cloud
- Keystatic: Astro installation and field list
- Keystatic: GitHub repository
- Astro: Keystatic and Astro
- Keystatic: its Astro integration's code (the
/keystaticand/api/keystaticroutes are injected withprerender: false) - Pages CMS: home page
- Pages CMS: GitHub repository
- Astro: Pages CMS and Astro
- Front Matter CMS: home page
- Front Matter CMS: GitHub repository
- Astro: Front Matter CMS and Astro
- Outstatic: home page
- Outstatic: pricing
- Outstatic: licence
- Sitepins: home page
- Sitepins: pricing
- Sitepins: GitHub repository
- Astro: Sitepins and Astro
- EmDash: GitHub repository
- EmDash: docs
- Astro: EmDash and Astro
- StudioCMS: GitHub repository
- StudioCMS: getting started
- Astro: StudioCMS and Astro
- Storyblok: pricing
- Storyblok: visual preview in Astro
- Astro: Storyblok and Astro
- Prismic: pricing
- Prismic: Page Builder
- Astro: Prismic and Astro
- Sanity: pricing
- Sanity: Astro docs
- Sanity: GitHub repository
- Astro: Sanity and Astro
- Contentful: pricing (answered HTTP 429 to every check on 2026-11-03)
- Astro: Contentful and Astro
- Builder.io: pricing
- Builder.io: GitHub repository
- Astro: Builder.io and Astro
- Payload: GitHub repository
- Payload: database adapters
- Payload: Live Preview
- Payload: Visual Editor (Enterprise)
- Astro: Payload and Astro
- Strapi: pricing
- Strapi: licence file
- Strapi: Preview feature and plans
- Astro: Strapi and Astro
- WordPress: licence
- WordPress: roles and capabilities
- Astro: Headless WordPress and Astro
- WordPress: requirements ("MariaDB version 10.11 or greater OR MySQL version 8.0 or greater"), checked 2026-11-04
- Ghost: GitHub repository ("Released under the MIT license"), checked 2026-11-04
- Ghost: Ghost(Pro) pricing (plans, staff roles, single sign-on on Custom), checked 2026-11-04
- Ghost: features, checked 2026-11-04
- Ghost: managing your team, checked 2026-11-04
- Ghost: install options, checked 2026-11-04
- Ghost: Ubuntu install guide (MySQL 8.0 or 8.4 "as the production database"), checked 2026-11-04
- Ghost: Content API (read-only), checked 2026-11-04
- Ghost: migrating from WordPress, checked 2026-11-04
- Astro: Ghost and Astro, checked 2026-11-04
- Statamic: pricing
- Statamic: features
- Astro: Statamic and Astro
- GitHub: star counts read from each repository's GitHub page on 2026-11-03 (Ghost's on 2026-11-04)
Get Markstage on GitHubThe short comparisonThis page on GitHub