🚧 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