Compare
Drystone CMS next to
the CMSes you are weighing.
Eight comparisons, each built the same way: what the other one does well, where it hurts in practice, and when you are better off staying. Not a scoreboard where we happen to win every round.
Where are you coming from?
Each page stands on its own: a table per criterion, an honest verdict and a migration path in four steps.
Drystone vs. WordPress
The best-known CMS on the web — and the most upkeep. Headless was bolted on afterwards.
See the comparisonDrystone vs. Strapi
The best-known open-source headless CMS. Powerful, but the install is a project of its own.
See the comparisonDrystone vs. Contentful
Polished SaaS with a reliable CDN — until you hit the plan limits, and your content lives with them.
See the comparisonDrystone vs. Sanity
Strong structured-content thinking and schemas as code — but your content lives in their cloud.
See the comparisonDrystone vs. Directus
Database-first and free of lock-in, but a heavier runtime and a lot of options for small projects.
See the comparisonDrystone vs. Payload
Code-first in TypeScript, great in git — but Node plus an external database, and a config that grows.
See the comparisonDrystone vs. Ghost
Beautiful for publishing and newsletters, deliberately narrow in what you can model.
See the comparisonDrystone vs. PocketBase
Also a single binary with SQLite — but a backend-as-a-service, not an editorial surface.
See the comparisonAt a glance
The six questions that decide it.
Six criteria most decisions run aground on — install, database, version control, editing, ownership and backup.
| CMS | Single binary | No external database | Schema in git | Rich editor | Self-hosted | Backup = 1 file |
|---|---|---|---|---|---|---|
| Drystone CMS | Single binary: Yes | No external database: Yes | Schema in git: Yes | Rich editor: Yes | Self-hosted: Yes | Backup = 1 file: Yes |
| WordPress | Single binary: No | No external database: No | Schema in git: No | Rich editor: Yes | Self-hosted: Yes | Backup = 1 file: No |
| Strapi | Single binary: No | No external database: Partly | Schema in git: Yes | Rich editor: Partly | Self-hosted: Yes | Backup = 1 file: No |
| Contentful | Single binary: No | No external database: No | Schema in git: Partly | Rich editor: Yes | Self-hosted: No | Backup = 1 file: No |
| Sanity | Single binary: No | No external database: No | Schema in git: Yes | Rich editor: Yes | Self-hosted: No | Backup = 1 file: No |
| Directus | Single binary: No | No external database: No | Schema in git: Partly | Rich editor: Partly | Self-hosted: Yes | Backup = 1 file: No |
| Payload | Single binary: No | No external database: No | Schema in git: Yes | Rich editor: Yes | Self-hosted: Yes | Backup = 1 file: No |
| Ghost | Single binary: No | No external database: No | Schema in git: No | Rich editor: Yes | Self-hosted: Yes | Backup = 1 file: Partly |
| PocketBase | Single binary: Yes | No external database: Yes | Schema in git: Partly | Rich editor: No | Self-hosted: Yes | Backup = 1 file: Yes |
yes partly, or only with extra work no
Why our own limits are on these pages
Drystone has no real-time collaboration, no GraphQL, no member management and no field-level permissions. That is written down here because you would otherwise find out after installing — and because a comparison in which one product wins everything is worth nothing.