Logo

FormKit

Forms can be defined once and rendered anywhere by modeling form behavior as schemas interpreted by a framework-agnostic runtime.


Role:

Design Engineer

Scope:
  • _ Product definition
  • _ UX design
  • _ State engine (Zustand)
  • _ WCAG enforcement
A software interface for building a "Product Feedback Form," showing editing options and a live preview of the form's questions.

Problem

Forms sit at the center of many product workflows — onboarding, eligibility checks, quoting, intake, and feedback collection. Despite their importance, they are often embedded directly inside frontend code.

Even simple updates such as changing labels, adjusting validation rules, or modifying flows require engineering work and a full deployment cycle. Across multiple teams and environments this creates systemic friction.

The result is slow iteration cycles, inconsistent experiences across products, and accessibility issues that are often discovered late in development.

Outcome

Design a system where forms can be created, updated, and deployed independently from application code.

Form structure, validation rules, accessibility requirements, and workflow behavior should live in a shared schema that acts as the canonical source of truth. Applications should render forms dynamically through a predictable runtime rather than embedding form logic directly inside UI components.

This approach allows teams to iterate quickly while maintaining consistency and accessibility across products.

Solution

FormKit introduces a schema-driven form infrastructure composed of three layers: a visual editor, a versioned API, and a runtime renderer.

Product teams design and publish forms through a visual editor. Schemas are stored and versioned through a multi-tenant API. Applications embed a runtime component that retrieves the schema and renders the form using the host application's design system.

By separating form creation from form consumption, teams can publish form updates instantly without modifying application code or triggering new deployments.