The Vibeary — round-up

Best form and input libraries

Forms are where prototypes go to die. Validation, error messaging, keyboard behaviour, masked inputs, multi-step state, file upload and accessibility all arrive at once, and hand-rolling them is a week you will not get back. This list covers the layers you actually need: schema-driven form state, well-behaved input primitives, specialised fields like phone, currency, date and OTP, and the drag-and-drop builders for teams who want non-developers editing forms.

What earned a place

  • Keyboard and screen-reader behaviour handled properly
  • Works with schema validation rather than ad-hoc checks
  • Composable — you can restyle it without forking it
  • Maintained and typed

21 picks from the library

  1. 01

    @smastrom/react-rating

    Zero-dependency, fully accessible star and custom-shape rating input with keyboard and RTL support.

    Why it made the list: Rating inputs are almost always inaccessible; this one is a real radiogroup

    Forms & inputsMITSimone Mastromattei (@smastrom)github.com

    @smastrom/react-rating preview
  2. 02

    AutoForm

    Renders a complete form automatically from an existing Zod, Yup or Joi schema, with adapters for shadcn, MUI, Mantine and Chakra.

    Why it made the list: Schema-to-form with real UI-library adapters — kills all the boilerplate on internal tools

    Forms & inputsMITBennett (@vantezzen)autoform.vantezzen.io

    AutoForm preview
  3. 03

    Card (jessepollak)

    Drop-in credit card form enhancement that renders an animated card preview reflecting typed number, name and expiry.

    Why it made the list: The animated card preview measurably reduces checkout errors and costs one line to add

    Forms & inputsMITJesse Pollak (@jessepollak)jessepollak.github.io

    Card (jessepollak) preview
  4. 04

    CV Forge

    Resume builder built on React Hook Form and react-pdf, usable as a reference implementation for complex nested forms.

    Why it made the list: Real-world example of deeply nested repeatable field arrays done well

    Forms & inputsopen-sourceCV Forgecvforge.app

    CV Forge preview
  5. 05

    Form Design Patterns

    Ten-chapter book of accessible, progressively-enhanced form patterns for registration, checkout, booking, filtering and upload.

    Why it made the list: The definitive reasoning behind form UX decisions — cite it to win design arguments

    Forms & inputspaidAdam Silver (@adamsilver)formdesignpatterns.com

    Form Design Patterns preview
  6. 06

    FormBuilder (AlandSleman)

    Visual builder that generates type-safe React Hook Form and Zod code from a drag-and-drop form layout.

    Why it made the list: Outputs owned source code rather than a runtime renderer — no lock-in

    Forms & inputsopen-sourceAland Sleman (@AlandSleman)github.com

    FormBuilder (AlandSleman) preview
  7. 07

    HeyForm

    Open-source conversational form builder with branching logic, AI form generation and 30+ templates.

    Why it made the list: Bootstrapped, genuinely open-source Typeform alternative with the one-question-at-a-time UX

    Forms & inputsopen-sourceEarlyBird (Luo Baishun, Wu Qin)heyform.net

    HeyForm preview
  8. 08

    IMask

    Vanilla JS input masking supporting pattern, number, date, regex and dynamic masks, with official React, Vue, Svelte and Solid bindings.

    Why it made the list: The only mask library that handles dynamic masks (card type switching) without hacks

    Forms & inputsMITAlexey Kryazhev (@uNmAnNeR)imask.js.org

    IMask preview
  9. 09

    Indie Starter Form Builder

    Free web form builder that emits shadcn, React Hook Form and Zod code ready to paste into a project.

    Why it made the list: Fastest path from 'I need a 12-field form' to working validated code

    Forms & inputsfreeIndie Starterui.indie-starter.dev

    Indie Starter Form Builder preview
  10. 10

    OpnForm

    Open-source form and survey builder with conditional logic, calculated fields, custom domains and self-hosting.

    Why it made the list: Self-hostable Typeform replacement with no response caps — clean client hand-off

    Forms & inputsopen-sourceOpnFormopnform.com

    OpnForm preview
  11. 11

    react-colorful

    A 2.5KB dependency-free, accessible colour picker for React with no runtime styling requirement and full keyboard support.

    Why it made the list: A hundredth the bundle of react-color with better keyboard support

    Forms & inputsMITVlad Shilov (@omgovich)github.com

    react-colorful preview
  12. 12

    react-easy-crop

    Component for cropping, rotating and zooming images and video with pinch and drag interactions.

    Why it made the list: Avatar upload flows need this exact component and it handles touch properly

    Forms & inputsMITRicardo (@ricardo-ch)github.com

    react-easy-crop preview
  13. 13

    react-jsonschema-form

    Builds and validates complete forms from a JSON Schema, with themes for Bootstrap, MUI, Chakra and more.

    Why it made the list: Server-driven forms: change the schema on the backend and the UI follows with no deploy

    Forms & inputsApache-2.0RJSF Team / Mozilla Servicesgithub.com

    react-jsonschema-form preview
  14. 14

    react-mobile-picker

    iOS-style scrolling wheel picker for React, useful for date, time and constrained option selection on touch.

    Why it made the list: Native-feeling wheel picker on the web, which no mainstream kit ships

    Forms & inputsMITadcenturygithub.com

    react-mobile-picker preview
  15. 15

    react-multi-email

    Input that tokenises multiple email addresses as the user types, validating and chipping each one.

    Why it made the list: Invite flows always need this and everyone rewrites it badly with a comma split

    Forms & inputsMITAXISJgithub.com

    react-multi-email preview
  16. 16

    react-phone-number-input

    International phone input with country selector, live formatting and validation backed by libphonenumber, plus flag assets included.

    Why it made the list: Phone validation is a rabbit hole; this wraps libphonenumber so you never enter it

    Forms & inputsMITcatamphetaminegitlab.com

    react-phone-number-input preview
  17. 17

    react-select-search

    Lightweight searchable select for React with fuzzy matching, option grouping, multiple selection and no imposed styling opinions.

    Why it made the list: The sane middle ground between a native select and the 30KB react-select

    Forms & inputsMITTobias Bleckert (@tbleckert)github.com

    react-select-search preview
  18. 18

    shadcn-zod-form

    CLI that generates shadcn form components directly from a Zod schema file.

    Why it made the list: Terminal-native codegen fits agent workflows better than any web builder

    Forms & inputsMITIlya Chuvatkin (@ilyichv)github.com

    shadcn-zod-form preview
  19. 19

    Sharable Form Builder

    Next.js form builder that produces shareable links to forms you assemble in the browser.

    Why it made the list: Self-hostable link-shareable forms without a SaaS in the loop

    Forms & inputsopen-sourceAyoub Ben (@ayoubben18)github.com

    Sharable Form Builder preview
  20. 20

    signature_pad

    Canvas-based smooth signature capture using variable-width Bézier interpolation, with undo and erase.

    Why it made the list: Variable-width Bézier is why signatures look real here and jagged everywhere else

    Forms & inputsMITSzymon Nowak (@szimek)github.com

    signature_pad preview
  21. 21

    TanStack Form

    Headless, type-safe form state management with async validation, field-level subscriptions and adapters for eight frameworks.

    Why it made the list: Type inference goes all the way down nested field paths, which React Hook Form still fumbles

    Forms & inputsMITTanStack / Tanner Linsley (@tannerlinsley)tanstack.com

    TanStack Form preview

Questions

Do I need a form library for a three-field form?
No. Reach for one when validation, async errors or multi-step state appear — that is where hand-rolled forms start leaking bugs.
How do I keep forms accessible?
Label every control, associate errors with aria-describedby, and move focus to the first invalid field on submit. Good libraries do this for you.
All round-upsSearch all gemsNewest additions