# Final Form

🏁 Framework agnostic, high performance, subscription-based form state management

Repository: https://github.com/final-form/final-form
Canonical: https://ross.abutalabs.com/products/final-form
Homepage: https://final-form.org
Language: TypeScript
License: NOASSERTION
License Family: other
Topics: form, forms, form-validation, state, state-management, agnostic, client-side, subscription, observer
Last push: 2026-05-30T16:11:40+00:00
Link (homepage): https://final-form.org
Link (site_page): https://final-form.org/docs/final-form/getting-started
Link (site_page): https://final-form.org/docs/final-form/api
Link (site_page): https://final-form.org/docs/final-form/companion-libraries

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 85, release rhythm 50, longevity 100
- inputs: {"age_days": 3206, "days_push": 95, "days_rel": 120, "gap_med": 331, "n_releases_24m": 2}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3045, forks 225 (observed 2026-08-28T04:07:39.496899+00:00)

## What it is
Final Form is a framework-agnostic, subscription-based form state management library, and React Final Form is its thin React wrapper. It uses the Observer pattern so only components subscribed to specific state slices re-render, keeping forms fast and bundles tiny (~3KB gzipped).

## Use cases
- manage form state in React apps
- build high-performance forms with fine-grained re-renders
- validate forms synchronously or asynchronously
- handle arrays of fields like dynamic lists
- manage form state in Vue or Web Components
- reduce bundle size compared to heavy form libraries

## When to choose
- you need performant forms where only relevant components re-render
- you want a tiny, zero-dependency form state solution
- you need framework-agnostic form state with bindings for React, Vue, or Web Components
- you need sync/async validation and array field support

## When to avoid
- you want an all-in-one UI kit with prebuilt form components and styling
- you prefer uncontrolled forms with native HTML validation only
- your project already standardizes on another form library like React Hook Form or Formik

## Facets
- artifact type: library
- maturity: stable
- function: state-management, form-handling, ui-components
- domain: web-development, frontend
- platform: browser, cross-platform
- tags: react, forms, form-validation, subscription-based, observer-pattern, framework-agnostic, zero-dependencies, nodejs

## Member repositories
- final-form/final-form (main) score 76
- final-form/react-final-form (plugin) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:39.496899+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:37:41.670124+00:00, confidence not recorded.
  - readme: https://github.com/final-form/final-form (fetched 2026-08-28T04:07:39.496899+00:00, sha bb7c1dac1258)
  - homepage: https://final-form.org (fetched 2026-08-29T08:33:39.417926+00:00, sha 38c4a7be9efb)
  - site_page: https://final-form.org/docs/final-form/getting-started (fetched 2026-08-29T08:33:39.427901+00:00, sha f6fd934728cb)
  - site_page: https://final-form.org/docs/final-form/api (fetched 2026-08-29T08:33:39.429868+00:00, sha a9ef06ed09b8)
  - site_page: https://final-form.org/docs/final-form/companion-libraries (fetched 2026-08-29T08:33:39.431590+00:00, sha fb517b87bc41)
  - registry_npm: https://registry.npmjs.org/react-final-form (fetched 2026-08-29T08:33:39.433721+00:00, sha 70650d4e274f)
  - registry_npm: https://registry.npmjs.org/final-form (fetched 2026-08-29T08:33:39.436454+00:00, sha 9c0839e2ec35)
- Data as of 2026-08-30T08:39:29.467469+00:00.
