Content Block

Schemas, drafts, locales, versions.
Decided.

Battle-tested headless CMS for your product. Open source, Apache 2.0, serving real production traffic for years.

claude plugin marketplace add https://github.com/23blocks-OS/ai-agents

claude plugin install content-block

Your agent now knows this API. Prefer hands-on? REST + SDK docs →

What's inside

Content types

Custom fields, relationships, validation

Rich editor

WYSIWYG, embeds, code blocks

Media

Upload, transform, auto-optimize

Versioning

Full history, diffs, restore

Workflows

Draft, review, schedule, publish

Localization

Locale fields, translation management

References

Linked entries, protected deletes

Delivery

One API, any frontend

Already debugged

The mistakes were made, fixed, and shipped past — before you got here.

  • Slugs are unique per locale — two editors publishing "getting-started" never collide.

  • Missing translations fall back to the default locale instead of a null field.

  • Deleting a referenced entry is protected or nulled by rule, never left dangling.

  • Version history is stored as diffs — full audit trail without the storage bloat.

Use this instead of

ContentfulSanityStrapiyour hand-rolled posts table

Better together

The author your auth block knows is the same identity Content Block enforces permissions against. Post published → CRM segment updated → Forms confirmation sent. Zero glue code.

Don't rebuild a CMS from a posts table.

Stay in the loop

Get product updates, engineering posts, and new block announcements delivered to your inbox.

No spam. Unsubscribe anytime. Privacy policy.