🚧 v0 · early access — not for production🚧 FastCMS is under active development — not ready for production use. APIs and features may change without notice.
FastCMS
Core Concepts

Field Types

All available field types for collection schemas, with validation options and JSON configuration.

Field Types

Each field in a collection schema has a name, type, and optional validation and type-specific configuration.

Text

{
  "name": "title",
  "type": "text",
  "validation": {
    "required": true,
    "min_length": 3,
    "max_length": 100
  }
}

Number

{
  "name": "price",
  "type": "number",
  "validation": {
    "required": true,
    "min": 0
  }
}

Boolean

{
  "name": "published",
  "type": "bool",
  "validation": {
    "required": false
  }
}

Email

{
  "name": "contact_email",
  "type": "email",
  "validation": {
    "required": true
  }
}

URL

{
  "name": "website",
  "type": "url",
  "validation": {
    "required": false
  }
}

Date

{
  "name": "publish_date",
  "type": "date",
  "validation": {
    "required": false
  }
}

Select

{
  "name": "status",
  "type": "select",
  "select": {
    "values": ["draft", "published", "archived"],
    "max_select": 1
  },
  "validation": {
    "required": true
  }
}

Relation

{
  "name": "category",
  "type": "relation",
  "relation": {
    "collection_id": "categories_collection_id",
    "type": "many-to-one",
    "cascade_delete": false,
    "display_fields": ["id", "name"]
  },
  "validation": {
    "required": false
  }
}

File

{
  "name": "image",
  "type": "file",
  "file": {
    "max_files": 1,
    "max_size": 5242880,
    "mime_types": ["image/jpeg", "image/png", "image/gif"],
    "thumbs": ["100x100", "500x500"]
  },
  "validation": {
    "required": false
  }
}

JSON

{
  "name": "metadata",
  "type": "json",
  "validation": {
    "required": false
  }
}

Editor (Rich Text)

{
  "name": "content",
  "type": "editor",
  "validation": {
    "required": false
  }
}

Geopoint

Stores a geographic coordinate with latitude, longitude, and optional altitude.

{
  "name": "location",
  "type": "geopoint",
  "geopoint": {
    "include_altitude": false
  },
  "validation": {
    "required": false
  }
}

Stored value:

{
  "lat": 40.7128,
  "lng": -74.0060,
  "alt": null
}

Supports distance-based queries and proximity filtering.

Autodate

Automatically records a timestamp when a record is created or updated. Unlike date, this field is managed by FastCMS — not user-submitted.

{
  "name": "published_at",
  "type": "autodate",
  "autodate": {
    "on_create": true,
    "on_update": false
  }
}
OptionDescription
on_createStamp the current time when the record is first created
on_updateRefresh the timestamp every time the record is saved

Set both to true to track "last touched" timestamps (similar to the built-in updated field, but scoped to specific events).

Summary

TypeDescriptionSearchable
textPlain text string✓
numberInteger or float—
boolBoolean true/false—
emailEmail with format validation✓
urlURL with format validation✓
dateDate or datetime—
selectDropdown with predefined values—
relationReference to another collection—
fileFile upload with optional thumbnails—
jsonArbitrary JSON data—
editorRich text / markdown✓
geopointLat/lng coordinate with optional altitude—
autodateAuto-managed timestamp on create/update—

On this page