Schema-Driven
Developer Toolkit

A framework-agnostic toolkit for building schema-driven interfaces. Define your UI in JSON, get automatic Zod validation and type safety. Use with React today, more adapters coming soon.

Framework AgnosticType SafeZero Boilerplate
contact-form.json
{
  "id": "contact-form",
  "title": "Contact Form",
  "mode": "free",
  "steps": [
    {
      "id": "contact-step",
      "title": "Contact Information",
      "elements": [
        {
          "id": "submission-status",
          "name": "submissionStatus",
          "$type": "submission-alert",
          "showOn": [
            "pending",
            "success"
          ],
          "pendingMessage": "Pending Submission",
          "successMessage": "Submission Successful"
        },
        {
          "id": "email",
          "name": "email",
          "$type": "input",
          "inputType": "email",
          "label": "Email Address",
          "placeholder": "Enter your email",
          "rules": [
            {
              "type": "required",
              "message": "Email is required"
            },
            {
              "type": "email",
              "message": "Please enter a valid email address"
            }
          ]
        },
        {
          "id": "message",
          "name": "message",
          "$type": "textarea",
          "label": "Message",
          "placeholder": "Your message...",
          "rules": [
            {
              "type": "minLength",
              "value": 10,
              "message": "Message must be at least 10 characters long"
            }
          ]
        },
        {
          "$type": "submit",
          "label": "Submit Form",
          "name": "submit"
        }
      ]
    }
  ],
  "actions": [
    {
      "id": "contact-submit",
      "$type": "submit",
      "description": "Submit contact form",
      "successMessage": "Message sent! Thanks for reaching out.",
      "errorMessage": "Failed to send message. Please try again.",
      "enabled": true,
      "endpoint": "/api/submit-demo",
      "method": "POST"
    },
    {
      "id": "reset-form",
      "$type": "reset",
      "enabled": true,
      "resetToDefaults": true
    }
  ]
}

Get Started in Seconds

Three steps to your first schema-driven form

1

Define Your Schema

Create your form configuration in JSON format with field definitions and validation rules.

2

Get Type Safety

Zod validation schemas and TypeScript types are automatically generated from your config.

3

Render & Submit

Use the React adapter to render your form with real-time validation and action handling.