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
Stored on the template. Studio's editor panel doesn't show it, except on a file field, as hover text on the field's name.
searchable
boolean
Stored on the template. Neither Studio nor the content index uses it today, and Strife has no search index for your site.
filterable
boolean
Stored on the template. Neither Studio nor the content index uses it today.
protected
boolean
Stops the field from being edited or removed in Studio's template designer. No effect in the editor panel.
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.