File-based, not database-backed
Every entry is a real file in your repo —
.mdx for long-form, .json for structured dataManifest-driven schema
A single
hiveku.cms.json declares every collection, field, and routeEdited in /v3
The right pane in the editor has a CMS mode with collection picker, form editor, and live preview
AI-native
The AI can scaffold collections, write entries, and refactor your components to read from the CMS
Why File-Based?
Most CMSes store content in a database and serve it through an admin panel. That works, but it adds infrastructure, latency, and a moving piece that’s hard to version. Hiveku’s CMS keeps every entry as a file in your project repo, which means:- Version controlled by default — every edit becomes a normal commit-style snapshot in
builder_code_versions. Roll back any entry to any point in its history. - Reviewable in pull requests — content changes show up as diffs, not opaque database writes.
- No DB roundtrips at runtime — your site reads the files directly at build time (or at request time for SSR), so there’s no extra service to provision, monitor, or pay for.
- AI agents can read and write it — content lives next to code, so the AI can refactor a hardcoded React component to pull from the CMS in a single step.
- Portable — clone your project, get all the content with it. Export a project, the CMS comes along.
Versioning is handled by the platform’s
builder_code_versions table, the same system that tracks every other file in your project. You don’t need to wire up Git or any other history system.Key Concepts
Manifest
A single file at the project root:hiveku.cms.json. It declares every collection your site has, the fields each entry must have, where the entries live on disk, and the URL pattern they map to.
See the manifest reference for the full schema.
Collection
A group of entries that share the same shape — for example, “Blog Posts”, “Products”, or “Team Members”. Each collection has:- An
id(used in references and tooling) - A
pathon disk (content/blog,content/products, etc.) - A
format— eithermdx(frontmatter + body, good for long-form) orjson(structured data only) - A
fieldsarray describing every field on each entry - An optional
routePatterndescribing the URL each entry maps to
Entry
One file inside a collection’s directory. For an MDX collection atcontent/blog/, an entry looks like:
content/testimonials/, it looks like:
Field
A typed slot on an entry —title, publishedAt, image, tags. The CMS form editor is generated from your fields, so giving a field a sensible type and name is enough to get the right UI control automatically.
See Field Types for the full list of supported types.
Reference
A field that points at another entry in another collection — for example, ablog post’s author field that points at an entry in the authors collection. References show up as picker fields in the form editor and let you reuse data across collections.
See Linking Collections with References for examples.
Where the CMS Lives in /v3
Open the /v3 editor and look at the right pane — it has three modes you can switch between:- Preview — your live site preview
- Code — direct file editing
- CMS — the content editor
- A collection picker at the top (Blog Posts, Products, etc.)
- A scrollable entry list with search, filter, and pagination
- A form editor for the selected entry, generated from the manifest’s field definitions
- A version history drawer for rolling back any entry
- A bulk import modal for CSV or JSON imports
- A collection manager (gear icon) for editing the manifest itself
A Minimal Example
A two-collection site — blog posts that reference an author — fits in one manifest:When to Use the CMS (and When Not To)
- Use the CMS
- Use a regular page instead
- Repeating content of the same shape — blog posts, products, team members, testimonials, case studies, FAQs, events, locations
- Content that non-developers need to edit
- Content you want to query or sort programmatically (latest 5 blog posts, products in a category)
- Anything you might want to migrate to a different rendering later — the data stays portable
What’s Next?
Initialize Your CMS
First-time setup — scaffold the manifest and a default collection
Migrate an Existing Site
Move hardcoded content into the CMS so non-developers can edit it
The Manifest
Full reference for
hiveku.cms.jsonField Types
Every supported field type and how it appears in the editor