Forms as Code

Live forms. Maintained in GitHub.

For engineers who own product and technical workflows. Define your form in YAML and commit it to GitHub. Declarative Forms renders the questions, validates answers, and stores submissions.

Create your first form
beta-access.yaml
# forms/beta-access.yaml, committed to GitHubversion: 1title: "Request beta access" sections:  - id: application    fields:      - id: email        type: email        label: "Email address"        validators: [required]       - id: project        type: long_text        label: "What are you building?"        validators: [required]    next: done

From a repository file to a working form.

Keep the form definition beside the system it supports. Review changes in pull requests and preview a pushed branch before merging.

  1. 01

    Define your form

    Start from an example and edit the YAML, or ask your coding agent to draft it using the published JSON Schema.

  2. 02

    Push it to GitHub

    Commit the definition to a public GitHub repository. Keep its history and review changes through your existing pull request workflow.

  3. 03

    Open and share it

    Open the matching path on frms.dev without .yaml. Use ?branch=draft to preview another pushed branch.

https://frms.dev/your-orgowner/your-reporepo/forms/beta-accessfile path?branch=draftbranch
Your definition. Declarative Forms handles the rest.

Ship the form without building its backend.

Define multiple steps, conditional questions, validation rules, and file uploads in one YAML file. Declarative Forms turns it into a form people can complete.

Declarative Forms stores submissions. Add email or webhook connections to send responses into your workflow, and customize the completion screen to tell respondents what happens next.

Need something for your workflow?

Describe the feature and what it would help you do. If we accept your request, we’ll build it within 72 hours.

We’ll confirm acceptance and scope by email. The 72-hour window starts when we accept.

Try the form here. Its YAML definition lives in this repository, with an email connection configured to send requests to our inbox.

Put your next form in GitHub.

Start with an example, push your YAML, and open the form on frms.dev. Keep future changes in the same review workflow as your code.

Create your first form