Blocks field

The blocks field is similar to the array field in that you can create "Add one more" scenarios, but with the difference that it lets you define a separate field schema for each instance.

Usage example

links: fields.blocks(
    // First block option is a link to a Page
    page: {
      label: 'Page',
      schema: fields.relationship({
        label: 'Page',
        collection: 'pages',
    // Second block option is a link to a URL
    url: {
      label: 'URL',
      schema: fields.text({ label: 'URL' }),
  { label: 'Links' }

Screencast walk-through

This segment of the Keystatic Mini-Course on YouTube may help understand how the blocks field works:

Type signature

Find the latest version of this field's type signature at: