FormAdapter
Reference

Packages

Choose the smallest FormAdapter packages for your runtime and transport.

FormAdapter is split by responsibility so the compiler, React runtime, UI, and server boundaries stay independently reusable.

PackageResponsibility
@formadapter/coreFramework-free compilation, paths, defaults, value preparation, validation helpers, and submission state
@formadapter/reactSchema-bound components, state, renderer, provider scopes, adapter contract, drafts, arrays, and wizards
@formadapter/htmlAccessible, unstyled native HTML adapter and provider
@formadapter/daisyuiComplete DaisyUI 5 adapter and provider
@formadapter/serverSchema-aware FormData/JSON validation, business errors, reusable submissions, actions, and request handlers
@formadapter/nextjsNext.js-focused aliases for native React 19 Server Actions
@formadapter/tanstack-startTanStack Start client hook and server-function helpers
@formadapter/orpcoRPC procedure submissions and structured error mapping
@formadapter/httpFetch-based JSON or multipart submission

Common installs

Client form with DaisyUI:

bun add @formadapter/react @formadapter/daisyui zod daisyui

Unstyled native HTML form:

bun add @formadapter/react @formadapter/html zod

Next.js Server Action:

bun add @formadapter/nextjs

TanStack Start server function:

bun add @formadapter/tanstack-start @formadapter/server

Regular endpoint:

bun add @formadapter/http @formadapter/server

Dependency direction

schema

@formadapter/core

@formadapter/react

UI adapter

Transport packages consume prepared input and the shared SubmissionState; they do not reach back into the compiler or UI. Custom renderers depend on React and core through the public adapter props, while server-only code can depend on @formadapter/server without importing React.

For public exports and lower-level helpers, use each package's generated TypeScript declarations as the API reference. The guides focus on stable workflows instead of duplicating every type member.

On this page