We built our own content platform because every option we evaluated made the same trade: comfortable editing or a fast site, pick one.
The deeper problem was different, though. Almost every CMS optimises for editor freedom, and freedom is how sites decay. An editor can publish a page with no meta description, a hero image with no alt text, three H1 elements and a link to a page that was deleted last quarter. Nothing stops them, and nothing tells them.
The quality gate is the feature
Before any page publishes from Studio, it is checked: SEO completeness, accessibility violations, readability score, broken internal and external links, missing alt attributes, heading hierarchy and schema validity.
Warnings must be resolved or explicitly acknowledged with a reason, and the acknowledgement is recorded against the publish event. That last part matters — it means "we knowingly published without a meta description because this is a temporary campaign page" is a legitimate answer, and it is attributable.
The result is that a site does not degrade quietly. It degrades visibly, with a name attached, or it does not degrade.
Typed blocks beat a rich-text field
A rich-text field is the most flexible thing you can give an editor and the most expensive thing you can give a developer. Content and presentation fuse, the markup is unpredictable, and redesigning becomes a migration.
Studio composes pages from typed blocks — hero, features, statistics, pricing, timeline, gallery, FAQ, call to action. Each block has a schema. Editors compose freely within that vocabulary, and because presentation lives in the renderer rather than in the content, a redesign is a code change rather than a content migration.
The constraint is real. Editors occasionally want something no block supports. The correct response is to add a block, not a rich-text escape hatch, because escape hatches are where the consistency goes to die.
AI belongs in the editor, not in the publish button
Every editor field in Studio has AI assistance: generate, rewrite, expand, summarise, translate, score for SEO, generate schema, draft FAQs. It is genuinely useful and it saves real time.
What it does not do is publish. A human reviews and approves everything. The AI drafts; the person decides. This is not caution for its own sake — an assistant that can publish is an assistant that can publish something wrong at three in the morning with nobody in the loop.
No plugin surface
A meaningful share of the security work we are asked to do on existing sites traces back to a plugin. Not a malicious one, usually — an abandoned one, two major versions behind, with a known advisory.
Studio has no plugin architecture. It is one audited codebase with a defined update path. This is unambiguously less flexible, and it is the right trade for the organisations we build for. If a capability is genuinely needed, it goes into the platform where it is reviewed, tested and maintained.
Revisions, and actually restoring from them
Every change is versioned with a visual diff and single-click restore. This sounds standard and frequently is not — plenty of systems store revisions that cannot cleanly be restored because a schema changed underneath them.
We test restore. It is part of the release checklist, because a backup you have never restored is a hypothesis rather than a backup.