The headless CMS that isn't a CMS
Every headless CMS starts with the same premise: "What if we separated the content from the presentation?" Good premise. But then they build a content management system on top of it. A dashboard. An editor. A media library. Roles and permissions. Workflows. Webhooks. Plugins.
By the time you're done configuring your headless CMS, you've spent more time in the CMS admin panel than you would have writing the blog post.
scsiwyg doesn't have an admin panel
There's nothing to configure. There's no content model to define. There's no media library to upload to. There's no workflow to set up.
You have an API token. You have a JSON format. You POST.
That's the CMS. The CMS is curl.
Why this works
The insight is that for developers, the "management" part of content management is the part that gets in the way. We don't need a web-based editor โ we have VS Code, Neovim, Cursor, Claude Code. We don't need a media uploader โ we can base64-encode an image in 2 seconds. We don't need a workflow โ we have git.
The content is a JSON file. It's portable. It's version-controllable. It's diffable. It's scriptable. It's AI-readable.
{
"slug": "why-json",
"title": "Why JSON",
"body": "Because it's the lingua franca of every tool I already use.",
"tags": ["json", "simplicity"],
"visibility": "public"
}
That file can live in a git repo. It can be generated by a script. It can be written by an AI agent. It can be validated by a CI pipeline. It can be diffed in a pull request. It can be backed up by copying it to a folder.
Try doing any of that with a Contentful entry.
The right amount of structure
scsiwyg has opinions about exactly three things:
- Posts have slugs, titles, and markdown bodies. Because those are the things a blog post needs.
- Posts are public or journal-gated. Because sometimes you want to share with everyone, and sometimes you want to share with supporters.
- Images are base64 data URIs. Because external image hosting is a dependency, and dependencies break.
Everything else โ how you write the content, when you publish, what tools you use, whether a human or an AI does the writing โ is up to you.
Headless means headless
Most "headless" CMSes are really "decapitated" CMSes. They still have a body โ the admin panel, the editor, the API gateway, the dashboard. They just removed the frontend rendering and called it headless.
scsiwyg is actually headless. The API is the product. The web rendering exists so people can read what you published. There's nothing in between.