Skip to main content
The manifest is a single JSON file at your project root that declares every collection in your CMS. It’s the source of truth for collection IDs, field schemas, on-disk paths, URL routes, and webhooks. The CMS panel reads this file to render forms; your build reads it to find entries; the AI reads it to know what’s editable.
The manifest is just a file in your repo — hiveku.cms.json at the root. You can edit it from the CMS panel’s Collection Manager, ask the AI to update it, or open it directly in the code editor.

File Location

The manifest must be at the repo root and named exactly hiveku.cms.json. The CMS panel won’t pick it up from a subdirectory.

Top-Level Schema

Per-Collection Schema

Each entry in collections looks like:

Route Patterns

routePattern supports four placeholder shapes:
  • {slug} — the entry’s slug, as-is: /blog/{slug}
  • {field:fieldName} — a slugified field value; the pattern fails to resolve if the field is empty
  • {field:fieldName?} — same, but the path segment collapses when the field is empty
  • {ref:fieldName.subField} — walk a reference chain across collections and slugify the deepest field, e.g. /{ref:service.city.state}/{ref:service.city}/{slug}
The CMS panel uses the pattern for the entry’s Open on the preview site link and the URL column in the entries table.

Validation Rules

The CMS panel and the AI tools validate the manifest before saving. Common rules:
  • Unique id per collection — two collections can’t share an ID.
  • Valid identifiersid should match [a-z][a-z0-9-]*. Lowercase, no spaces, hyphens allowed.
  • Path must be a relative directory — no absolute paths, no .. traversal.
  • Exactly one isBody: true field per MDX collection — the body slot is required for MDX format. JSON collections must not have any isBody fields.
  • Field names are unique within a collection — no duplicate name values inside a single collection’s fields array.
  • References point at real collection IDs — a reference field’s referenceCollection value must match another collection’s id in the same manifest.
  • Nested fields cap at four levelsobject and array-of-object fields can nest sub-fields up to four levels deep.
If validation fails when saving from the CMS panel, the save is rejected with a list of errors. The Collection Manager surfaces them inline next to the offending field.

Full Example

Here’s a manifest covering a real site with blog posts, authors, products, and testimonials:

Webhooks

Webhooks fire when CMS entries change. Each webhook entry takes: Deliveries are best-effort and never block a save — a webhook endpoint that’s down doesn’t stop your content from saving.

Editing the Manifest

Just describe what you want:
The AI reads the manifest, proposes the addition, and saves it after you confirm.

Versioning

Every edit to hiveku.cms.json is versioned the same way as any other file in your project. Open the version history for the manifest from the code editor to roll back schema changes.
Removing a field from the manifest doesn’t delete data from existing entries — the data stays in the file but won’t show in the form. Re-adding a field with the same name restores the editor for that data. Renaming a field, however, orphans the old data; ask the AI to write a migration if you need to rename safely.

What’s Next?

Field Types

Every supported field type with examples

Collections

Naming, format choice, and reusable patterns

Add a Collection

Three ways to add a new collection

Initialize Your CMS

Scaffold a manifest from scratch