Skip to content
Form, Please

Build forms with ease

Use "Form, Please" to build product forms quickly from an existing design system. Wrap product controls and structural slots once, then reuse them across generated or manually composed forms. It handles state, validation, and submission while your application keeps control of components, markup, styling, and product logic. Start with native controls or bring your own design system.

Build your first form, explore the live examples, or review the API.

See it work

Edit the profile and submit it. The React Hook Form resolver validates and transforms the input once, then "Form, Please" displays the typed output.

Live demo

Edit the profile. Submit it to see the schema-validated output.

Validated output
Submit the form to see typed output.

What stays explicit

  • Your Standard Schema owns validation and transformed submit output.
  • Your definition owns fields, sections, arrays, labels, and conditional UI.
  • Your controls and slots own the rendered design system.
  • React Hook Form owns editable state and its low-level API.

Use RHF register, Controller, and hooks such as useWatch when a generated definition is not enough. kit.Form supplies FormProvider.

Supported package entries

The package has seven JavaScript entries: form-please, form-please/default-slots, form-please/history, form-please/native-controls, form-please/persistence, form-please/preset-native, and form-please/preset-mui.

Release automation controls the exact version. Breaking public behavior starts a new major release line.

Kudos

Kudos to Evgeniy Ivaha for the idea and the example implementation.