# React Hook Form Integrations

> Integrate React Hook Form with Zod, Yup, every official schema resolver, Next.js, shadcn/ui, and React 19 using practical TypeScript examples.

Source: https://react-hook-form.com/integrations

React Hook Form works with schema validators, controlled UI components, and modern React frameworks without changing how your form data is managed. Choose an integration for installation steps, a complete example, TypeScript guidance, and integration-specific caveats.

## Schema validation

- [Zod](https://react-hook-form.com/integrations/zod) — TypeScript-first schemas, input/output types, and transformed values.
- [Yup](https://react-hook-form.com/integrations/yup) — object schemas, inferred types, casting, and form context.
- [All schema resolvers](https://react-hook-form.com/integrations/resolvers) — AJV, ArkType, Class Validator, computed-types, Effect, fluentvalidation-ts, io-ts, Joi, Nope, Standard Schema, Superstruct, typanion, TypeBox, TypeSchema, Valibot, Vest, VineJS, ata-validator, Yup, and Zod.

## Frameworks and UI

- [Next.js](https://react-hook-form.com/integrations/nextjs) — App Router Client Components, Server Actions, and server-side validation.
- [shadcn/ui](https://react-hook-form.com/integrations/shadcn-ui) — `FormField`, controlled components, Zod, and accessible errors.
- [React 19](https://react-hook-form.com/integrations/react-19) — form actions, progressive enhancement, and `useActionState`.

## Choose the right API

| Goal                                   | Recommended API                                                                          |
| -------------------------------------- | ---------------------------------------------------------------------------------------- |
| Validate with an external schema       | A [resolver](https://react-hook-form.com/integrations/resolvers) passed to [`useForm`](https://react-hook-form.com/docs/useform#resolver)      |
| Use a controlled UI component          | [`Controller`](https://react-hook-form.com/docs/usecontroller/controller) or [`useController`](https://react-hook-form.com/docs/usecontroller) |
| Share methods through a component tree | [`FormProvider`](https://react-hook-form.com/docs/formprovider) and [`useFormContext`](https://react-hook-form.com/docs/useformcontext)        |
| Submit to an endpoint or Server Action | [`Form`](https://react-hook-form.com/docs/useform/form)                                                             |
| Own the complete request lifecycle     | [`handleSubmit`](https://react-hook-form.com/docs/useform/handlesubmit)                                             |
| Build repeatable dynamic rows          | [`useFieldArray`](https://react-hook-form.com/docs/usefieldarray)                                                   |

For the fundamentals, begin with [Get Started](https://react-hook-form.com/get-started). Continue to [Advanced Usage](https://react-hook-form.com/advanced-usage) for accessibility, testing, reusable components, and Server Action patterns.
