Features · 23
Everything in the box.
All of it is in the MIT core. Or try the live demo.
AI
An assistant inside the editor, and agents outside it.
Content
Model it, write it, translate it, find it again.
- Writing Rich text with tables, callouts and media, checked for accessibility as you write. Rich text that checks itself
- Content model Content types live in your repository and generate real Postgres tables. Content types in code
- Schema builder A visual editor for content types that writes a type file and a migration. Model content in a form
- Content library Nested AND / OR filters that reach through relations, saved as a view you can share. Nested AND / OR filters
- Media library Folders, assets and alt text, with the files on your disk or in your bucket. Folders, assets, alt text
- Languages One row per language, with each field marked shared or translated. One row per language
- Version history Every save is an immutable snapshot of the whole entry. Compare, restore or publish any of them. Every save is a version
Governance
Who may do what, where, and what happened.
- Publishing A readiness check that runs the server’s own validation, and a status that shows unpublished edits. A gate before it goes live
- Publication protection A content type can require N approvals before anything of that kind goes live. Approvals before publish
- Content alarms Write down what your team counts as wrong, and see it flagged — without blocking anybody. Rules that flag, never block
- Segments Decide who may read a published entry, enforced on REST, GraphQL and MCP alike. Who may read each entry
- Roles and permissions Three roles and 37 permission keys, checked by the API on every request. Three roles, checked in the API
- Workspaces Separate brands, clients or markets in one installation, each with its own members. Separate sites, one install
- Activity and insights A searchable record of who changed what, and a dashboard of how your content is doing. Audit log and dashboards
Delivery
Serve it, announce it, move it.
- Delivery API REST and GraphQL over one implementation, with the same token, permissions and visibility rules. REST and GraphQL, one API
- Webhooks A signed POST to your endpoint when content changes, retried until it lands. Signed, retried deliveries
- Export and import Content out in four formats, and back in through the same checks every editor uses. Records with their graph
- Outgoing mail Invitations and password-reset links sent by the CMS, with no link pasted into a chat. Invitations and reset links
Platform
Plugins, sign-in, and servers you own.
- Plugins Every capability is a plugin on the same public contract your own code uses. Everything is a plugin
- Sign-in and SSO Invite-only accounts, revocable sessions, and OpenID Connect, GitHub or SAML sign-in. Invite-only, with SSO
- Yours to run Your servers, your Postgres database, your files. Nothing calls home. Your servers, your data
Run it yourself.
One command, five choices, and it is on your machine.
npx create-orthacms-app