type decides what the input control looks like, how data is validated, and how the value is stored on disk.
This page is the full reference. Pick the type that matches the kind of data, and the editor takes care of the rest.
Common Field Properties
Every field type accepts these properties:Validation Rules
Validation rules live under a field’svalidation object and run on both the client (inline, as you type) and the server (on save):
options for select or referenceCollection for reference) are documented per type below.
string
A short text value. UI: A text input. Stores: A JSON string in the entry file.number
A numeric value (integer or floating point). UI: A numeric input. Stores: A JSON number.boolean
A true/false value. UI: A toggle switch. Stores:true or false JSON literal.
date
An ISO-8601 date or datetime. UI: A date picker (or a datetime picker withwithTime: true).
Stores: A JSON string — YYYY-MM-DD, or full ISO format when withTime is set.
Two date field names carry publish meaning by convention: a
publishAt date on a published entry keeps it hidden on the site until the date passes — that’s what powers scheduled publishing.markdown
Long-form Markdown content. UI: A split-pane editor with live preview, syntax highlighting, image drop, and shortcuts. The same control is used for the body of MDX entries whenisBody: true.
Stores: Markdown source — either as a JSON string (for JSON collections) or as the body of the MDX file (when isBody: true).
html
Raw HTML content — for hand-authored or imported markup with custom classes, embeds, or structured-data script blocks that Markdown would mangle. UI: A code editor with HTML syntax highlighting and autocomplete, paired with a sandboxed live preview (styles and images render; scripts don’t execute in the editor). Stores: The HTML source as a JSON string, byte-for-byte.color
A color value. UI: A color picker with hex input. Stores: A JSON string in#rrggbb or #rrggbbaa form.
url
A URL. UI: A text input with URL validation. Stores: A JSON string. Validated against URL syntax on save.image
An image asset. UI: An upload dropzone with drag-and-drop, paste support, and a Choose existing button that opens the project’s Assets library. Served through Hiveku’s image CDN automatically. Stores: A JSON string with the uploaded file’s path (e.g./uploads/hero.jpg) — or a { "url", "alt" } object once you add alt text in the editor.
file
A non-image file asset (PDF, video, audio, archives). UI: Same upload dropzone asimage, with a generic file preview.
Stores: A JSON string with the upload path.
select
One of a fixed set of values. UI: A dropdown. Stores: A JSON string matching one of the option values.For a multi-select, use an
array of string instead — select stores exactly one value.array
A list of values, all of the same shape. UI: A reorderable list with add/remove buttons. Each row renders the editor for theitems type.
Stores: A JSON array.
Three flavors cover most needs:
{ "src", "alt", "caption" } objects; a multi-reference (items: "reference") stores an array of entry slugs and renders as removable chips. Nested arrays-of-arrays aren’t supported — wrap the inner list in a named object row instead.
object
A grouped set of fields edited together. UI: A nested card of form controls. Anobject field declared without fields renders as a raw JSON editor with syntax checking — a legacy escape hatch for free-form data.
Stores: A nested JSON object.
reference
A pointer to another collection’s entry. UI: A searchable picker listing the target collection’s entries. If the entry you need doesn’t exist yet, you can create it inline without leaving the form. Stores: A JSON string with the referenced entry’s slug.Choosing a Type
A few rules of thumb:- Long-form prose with formatting?
markdown(andisBody: trueif it’s the main body of an MDX entry). Reach forhtmlonly when the markup itself matters. - Short text?
string. - A fixed set of choices?
select. Need several at once? Anarrayofstring. - A list of similar things?
array. Setitemsto a primitive,"image"for a gallery,"object"for richer rows, or"reference"for a multi-reference. - A pointer to another piece of content?
reference. Don’t duplicate fields across collections — link them. - Something that should just be one record? Make a collection for it and keep a single entry (site settings, homepage hero).
What’s Next?
The Manifest
How fields fit into the larger manifest schema
Collections
Reusable patterns for blog, products, and more
References
Link collections together with reference fields
Editing Content
See how each field type renders in the CMS panel