// the find
TanStack/form
🤖 Headless, performant, and type-safe form state management for TS/JS, React, Vue, Angular, Solid, and Lit.
TanStack Form is a headless form state management library with a single core that adapts to React, Vue, Angular, Solid, Lit, and Preact. It handles field-level validation (sync and async with debounce), nested objects and arrays, and submission state without dictating any UI. Aimed at developers who are tired of React Hook Form's ref-based model or Formik's re-render behavior and want something type-safe across multiple frameworks.
The TypeScript support is genuinely good — DeepKeys and DeepValue types mean field names are checked at compile time, so renaming a form field shows you every broken reference. Validation is framework-agnostic via Standard Schema, so you can drop in Zod, Valibot, or ArkType without adapter packages. The shared core package means a validation bug gets fixed once and all framework adapters inherit the fix. Async validation with built-in debounce and abort-on-change is handled at the library level, not left as an exercise for the developer.
The cross-framework ambition is also the main liability: Angular and Lit support feel like second-class citizens compared to React — fewer guides, thinner examples, and the Angular adapter requires wrestling with injection tokens in ways the docs don't fully explain. The headless model means every project rebuilds the same error display and field wrapper components from scratch; there's no official component kit, so teams starting fresh pay that tax every time. The bundle size is reasonable for the core but each framework adapter adds weight, and there's no tree-shaking story for validation adapters you don't use. Form groups and the broadcast API are genuinely complex and the docs treat them as advanced topics without explaining when you'd actually need them versus just nesting fields.