Getting started
Admin UI
Install the reference admin dashboard from the shadcn registry.
The admin dashboard is a reference implementation, not part of the engine. It ships as a shadcn registry item so you pull it into your own app and own the code.
What it covers
Collection lists with filters, sorting, and status badges; document forms with a widget per field type
The workflow actions the caller is allowed: publish and unpublish, or request and withdraw review; scheduled publishing; revisions with diff and restore; translations
The schema editor (
/admin/schema): edit a collection's settings and fields, collect the changes, and submit them as one proposalProposal review (
/admin/proposals): the operations, their measured impact on stored documents, and approve or rejectA spec editor for pages and layouts with a live preview, resolved by
POST /api/_cms/pages/_previewand rendered with the site's own component registryMedia, search, users (Better Auth admin plugin), and API keys with a ready-to-copy MCP connect command
Prerequisites
The CMS router mounted at
/api(see Quick start). The admin only calls the API throughuseCMS()from@interactive-inc/cms/admin.Better Auth at
/api/authwith the admin plugin and the admin, editor, and viewer roles (the reference app usesvoid/auth).A Void app with
@void/react. Admin pages render client-side (ssr = false) and import with the@/alias forsrc.A shadcn project on the base-ui primitives, initialized with the
serapreset:npx shadcn@latest init --preset sera.
Install
npx shadcn@latest add https://cms.open.localhost/r/cms-admin.jsonThe item writes pages/admin/**, the admin components under src/components, the auth client helpers under src/lib, and the site component catalog under src/site that the spec preview renders with. It lists the shadcn primitives it needs as registry dependencies, so they resolve to the style in your components.json.