FAQ & Non-Goals
Frequently asked questions
Is Kin Form production-ready?
Kin Form is still pre-1.0, but the API is stable in practice now and every publish runs through CI with test coverage. We encourage you to try it out and send us feedback.
Does it work outside React?
@kintools/form-core has no framework dependency at all. It carries the whole
form model, the FieldApi/FormApi tree with per-node validation, dirty
tracking, array helpers, and submission, over a subscribe/notify pub/sub
base that framework bindings hook into. @kintools/form-react and
@kintools/form-lit are both published and ready to use today.
Is there Vue, Svelte, or Solid support?
Not yet. Nothing about core is React- or Lit-specific, so another binding is
realistic future work, but it isn't scheduled ahead of someone actually needing
it, not to keep the package list growing. Open an issue if you'd use one.
Does it support Zod, Valibot, or ArkType validation?
toSchemaValidator() (from @kintools/form-validators) adapts any
Standard Schema-compliant library, Zod, Valibot,
ArkType, and others, into a schemaValidator that checks a whole group's or the
whole form's value in one pass, populating schemaErrorMap and each field's own
error. It's a separate option from hand-written per-field validators; the
two coexist, and when a field has both, its own per-node message is the one
field.error shows. See Schema Validation.
Does it work with SSR or Next.js?
Yes. The SSR guide covers the two things that actually
change: don't use field.id as a DOM element id (React's useId() already
solves that and avoids server/client mismatches), and pass server-loaded data
straight into initialValue rather than constructing the form empty and calling
reset() once data arrives.
Is there a DevTools integration?
Yes, for React: @kintools/form-devtools-react connects a
DevtoolsProvider/useFormDevtools inspector panel to a form's live tree,
showing every registered field's value, error, touched, and validating
as they change. It's React-only today; there's no Lit equivalent yet.
How does it compare to React Hook Form, Formik, or TanStack Form?
The comparison pages carry the actual feature matrix, API-surface matrix, bundle-size chart, and wall-clock performance numbers, plus a detailed, code-by-code comparison against React Hook Form. One caveat worth stating directly: the current performance numbers are measured in Happy DOM, not a real browser yet, reproducing them in an actual browser is still on the roadmap.
What's the bundle size?
@kintools/form-core is 4.5 KB gzipped, @kintools/form-react's bindings add
0.8 KB on top, and @kintools/form-validators is 0.7 KB, each measured
independently (bundled and minified with rolldown) since you only pay for what
you actually import. Core plus React together comes to about 5.2 KB gzipped.
Where do I ask a question or report a bug?
GitHub Discussions for questions and design feedback, Issues for bugs.
Non-goals
Chasing benchmark wins isn't the pitch here, and neither is copying every feature a competing library ships. The comparison pages exist to name real tradeoffs directly, not to win a spec sheet.
Kin Form doesn't validate anything on its own terms the way a schema library
does. toSchemaValidator() is an adapter onto Zod, Valibot, ArkType, or any
other Standard Schema implementation, not a competing validation engine, and the
built-in @kintools/form-validators factories (required, email, pattern,
and the rest) are deliberately small, common-case helpers rather than a
general-purpose rules system.
Framework support stops at React and Lit for now. Nothing in core rules out
Vue or Solid bindings later, but neither is being built ahead of someone
actually needing it, and the same restraint applies to DevTools: only
@kintools/form-devtools-react exists, with no Lit inspector yet.
Migration guides from React Hook Form and Formik aren't published yet either: they're listed as in-progress work, not finished, so don't expect a drop-in codemod or a guide walking through an existing RHF form today. The React Hook Form comparison is the closest thing available in the meantime.