easy-forms

Introduction

A schema-driven React form library. Hand it an array of question objects and it owns rendering, validation, conditional logic, multi-step wizards, and submission.

Easy Forms is a schema-driven React form library. You describe a form as data — an array of question objects — and the library owns the entire workflow: rendering, validation, conditional logic, dirty/touched tracking, multi-step wizard navigation, and submission.

It is a higher-level alternative to libraries like React Hook Form. There is no useForm, register, or Controller to wire up. The schema is the source of truth.

The one-sentence mental model

You write a typed FormSchema. <Form> reads it, builds the state store, renders the right control for each question, runs validation, evaluates dependencies, and hands you the validated values on submit.

A first taste

The form below is live — it is the genuine @easy-forms/core engine rendering the schema beside it, with the @easy-forms renderer registry.

Preview
Live

Say hello

Why teams choose Easy Forms

How it fits together

There's one published package plus the UI registry:

PieceRole
@easy-forms/core (npm)The headless engine: types, the form store, hooks, components, the dependency engine, the wizard, and plugins. Zero UI dependencies.
@easy-forms shadcn registryThe default renderers + the pre-wired <EasyForm> wrapper + form chrome — added with shadcn add @easy-forms/* and copied into your repo, fully editable.

Use the renderers as-is, edit them in place, or point a control at your own to match any design system — see Theming.

Where to next