Skip to content
Strife Docs

Reference

Field Reference

Every fields.* builder from @strifeapp/schema, with its full option set, output type, and wire-format mapping — the code-first counterpart to the Studio-UI Fields reference.

This section documents every fields.* builder exported by @strifeapp/schema — the code-first counterpart to Fields, which documents the same editors from Strife Studio's UI. Use this section when you're writing a Schema and want the complete option set for a specific builder; use the Studio Fields reference when you're looking at a template built by hand in Strife Studio and want to know what an editor does.

Each page follows the same shape: a minimal example, the full options table (sourced directly from the builder's TypeScript signature), the inferred output type, and any notes worth knowing — including a few places where the code-first builder's options don't (yet) cover everything the underlying Strife Studio editor supports.

Common options

Every builder takes label (required) and, unless noted on its own page, most also accept:

OptionTypeDescription
description
string
Shown as a tooltip/hint to editors in Strife Studio.
searchable
boolean
Include this field's value in the team's search index.
filterable
boolean
Allow filtering content lists by this field's value.
protected
boolean
Restrict editing to users with the appropriate permission.
propertyName
string
Override the stored property name. Defaults to the field's key in the fields object.
localizable
boolean
Only present on builders where a per-locale value makes sense — see the table below.

A few builders are exceptions to this common set — hint and tabs are structural/UI-only and skip most of it, and serp skips searchable/filterable. Each page's own table is the source of truth; don't assume every option on this page applies everywhere.

localizable is available on exactly these ten builders: text, paragraph, number, date, slug, html, image, link, serp, and chapters. Every other builder either doesn't expose it (a boolean or a selected option isn't the kind of value that varies by locale) or is structural (hint, tabs).

All builders

BuilderOutput typeLocalizable
string
Yes
string
Yes
number
Yes
boolean
No
boolean
No
string (ISO-8601)
Yes
string
Yes
string (HTML)
Yes
unknown
No
number
No
FileValue
No
unknown
No
Image
Yes
ImageGroup
No
unknown[]
Yes
unknown
No
CollectionDefinition
No
string[] / number[] / Link[]
No
{value, name}[]
No
value[]
No
string[] / number[]
No
Record<string, unknown>[]
No
Asset[]
No
literal union
No
Link
Yes
Serp
Yes
Target[] (read)
No
Target[] (read)
No
never (no data)
No
never (structural)
No
Note:

This reference is generated from @strifeapp/schema's TypeScript source, so it only documents options the DSL actually implements today. A few Studio-UI editor capabilities noted on the pages above (⚠, and a couple more called out on individual pages) aren't reachable from defineType/fields.* yet — the per-field pages call these out explicitly rather than implying parity that doesn't exist.