Skip to main content
Every Declarative Forms config starts with the same three keys: version, title, and optionally description. This page covers all three in full, including how localization applies to title and description.

version

Always 1. This key exists for future schema versioning — if the schema changes in a breaking way, a new version number will allow the platform to handle both formats. For now, every form must have version: 1.
version: 1

title

Shown as the heading at the top of the form, above the first section. Plain string:
title: Join the team
Locale map:
title:
  en: Join the team
  es: Únete al equipo
When a locale map is used, the platform selects the value matching the active locale. If no matching locale exists in the map, it falls back to en.

description

An optional subtitle rendered below the title. Useful for setting expectations — form length, required information, or context. Plain string:
description: Takes about 2 minutes.
Locale map:
description:
  en: Takes about 2 minutes.
  es: Tarda unos 2 minutos.

LocaleMap rules

Both title and description support the same LocaleMap format:
  • Keys are locale codes (en, es)
  • A plain string applies to all locales — use it when you only need one language
  • When a locale map is used, the value for the active locale is shown
  • If the active locale is not present in the map, en is used as the fallback
Locale resolution priority:
  1. ?lang= URL query parameter (always wins)
  2. Browser’s navigator.language
  3. locale key in the YAML
  4. en as the final fallback
See Localization for full coverage of how locale resolution works across the platform.

Full example

The job application form with title and description as locale maps:
version: 1
title:
  en: Join the team
  es: Únete al equipo
description:
  en: Takes about 2 minutes.
  es: Tarda unos 2 minutos.
sections:
  - id: main
    title:
      en: Apply to work with us
      es: Solicita trabajar con nosotros
    fields:
      - id: full_name
        type: short_text
        label:
          en: Full name
          es: Nombre completo
      - id: role
        type: single_select
        label:
          en: Role you're applying for
          es: Puesto al que aplicas
        options:
          - Software Engineer
          - Product Manager
          - Designer
      - id: email
        type: email
        label:
          en: Email address
          es: Correo electrónico
    next: done