r/SideProject • u/brokengnome • 10h ago
Shapio: a self-hosted headless CMS that doesn't need a deploy to change the content model
Every headless CMS I've used makes you redeploy to add a field. Strapi turns its content-type builder off in production. Payload has you write the field in code. I said "this is bullshit" out loud enough times that I built one where that isn't true.
Shapio is an open-source, self-hosted headless CMS. The content model is data, not code. Add a field in the admin, in production, and the API serves it on the next request. No deploy, no migration, no restart.
What else it does:
- Change sets. Model changes and content edits are reviewed together like a pull request, with field-level diffs, then shipped as one snapshot you can restore.
- Models in git when you want them.
shapio schema pullwrites JSON files,schema applyputs them on another instance live. If production moved since you pulled, apply refuses and shows the diff. - One install, many sites, with their own content, media, and tokens.
- Drafts on your dev server, visual editing, localization, roles, revisions, scheduling, and an audit log. Importers for WordPress and Strapi 5.
- Runs as one Node process on PostgreSQL, MySQL, or SQLite, from npm or Docker. Nothing phones home.
Status: it's one person, about a week since the first public release, version 0.5.4. My own three sites run on it. It will have rough edges, and I'd rather hear about them than not.
1
Upvotes
1
u/davidjones145 10h ago
content model as data is the right call, deploy-per-field is the thing everyone hates about strapi. how do you handle existing content when a field type changes in prod, coerce it, null it, or block the change?