CriterionDrystone CMSGhost
Content modelling
Drystone CMSFree-form collections and singletons, every field type, relations 1-1, 1-n, n-n.
GhostPosts, pages, tags and authors. Custom types do not exist.
Headless
Drystone CMSHeadless from the start; a delivery API with an OpenAPI spec.
GhostThere is a Content API, but the shape stays that of a blog.
Database
Drystone CMSSQLite built in, in production too.
GhostMySQL required for production installs.
Install
Drystone CMSOne binary, no runtime around it.
GhostNode plus MySQL, or their managed hosting.
Writing
Drystone CMSBlock editor with autosave, drafts, scheduled publishing and preview.
GhostAn excellent editor — this is what Ghost has been good at for years.
Newsletter & members
Drystone CMSNot included; connect your own service through webhooks.
GhostBuilt in, including paid subscriptions. A genuine strength.
Schema in git
Drystone CMSYes, schema.yaml is the source of truth.
GhostNot applicable: the model is fixed by the product.
Backup
Drystone CMSCopy one file, plus the media folder.
GhostA JSON export plus the content folder plus the database.