Prompt

What are the best tools for creating web forms with code?

Technology · Developer Tools / Developer tools3 observationsLast seen Jul 21, 2026

Latest observation

Jul 21, 2026 · Claude

Here's the current landscape for creating web forms with code — meaning you write the implementation, not a drag-and-drop editor:

React

  • React Hook Form — the default for most projects in 2026: uncontrolled, ~9-11KB gzipped, near-zero re-renders, best TypeScript inference, integrates cleanly with Zod/Yup/Valibot. Right choice for static forms (login, checkout, settings) where the field set doesn't change dynamically.
  • TanStack Form — better fit for deeply nested, complex, type-safe forms, especially if you're already using TanStack Query/Router — fine-grained control over validation timing and built-in async validation handling.
  • Conform — the pick when progressive enhancement matters — the only mainstream library with first-class support for forms that work without JavaScript, built around Next.js App Router Server Actions.
  • Formik — still works, but in maintenance mode; not recommended for new projects given RHF's smaller bundle and better performance on larger forms.

Vue

  • FormKit — full schema-driven framework: rendering, validation, theming, and conditional logic bundled together, composable and code-configured rather than drag-and-drop.
  • VeeValidate / Regle — validation-only, bring-your-own-UI; best if you already have a component library and just need validation state and error mapping.

Angular

  • Reactive Forms — the established, built-in approach (FormGroup/FormControl).
  • Signal Forms (newer) — declarative conditional logic (hidden(), disabled() rules) with less boilerplate, built directly into recent Angular versions.

Cross-framework, schema-driven (for dynamic, logic-heavy forms)

  • SurveyJS — JSON schema defines the entire form (questions, validation, branching, calculated fields); framework-native for React, Angular, Vue, plain JS. Free MIT-licensed rendering core. The right tool once your form's structure, not just its values, needs to change based on data — multi-step wizards, skip logic, scored assessments.
  • RJSF / JSON Forms — render from the standards-based JSON Schema spec rather than a proprietary format; better interoperability with existing API schemas, but you build more survey-specific behavior yourself.

Backend-agnostic, minimal setup

  • FormKeep — you write the HTML/CSS entirely yourself; FormKeep just handles spam protection and submission storage as a backend, so there's zero client-side library to learn.

When to skip a library entirely

  • For forms under 5 fields with no field arrays, no async validation, and no complex error UI, plain useState/ref plus native HTML validation (required, pattern, type="email") is genuinely enough — form libraries pay off specifically once you hit 10+ fields, dynamic field arrays, or cross-field validation.

How to choose

  • React, static form, standard case → React Hook Form + Zod.
  • React, complex nested/typed forms, already on TanStack → TanStack Form.
  • React, need progressive enhancement / no-JS support → Conform.
  • Vue, complex conditional forms → FormKit.
  • Angular → Reactive Forms or Signal Forms depending on version.
  • Form structure itself needs to be dynamic (branching, scoring, multi-page) → SurveyJS.
  • Need standards-compliant JSON Schema for interop with existing API definitions → RJSF or JSON Forms.
  • Want to write raw HTML/CSS and just need a backend → FormKeep.

Bottom line: for most code-first web forms, React Hook Form (React) and FormKit (Vue) are the standard picks for static-to-moderately-complex forms, while SurveyJS is the right reach once the form itself needs dynamic structure — branching, calculated fields, or multi-page logic — rather than just more fields.

Observation history

See 2 earlier observations

Create a free Obsurfable account to unlock historical responses, model comparisons, and deeper brand intelligence.

How did Obsurfable measure this prompt?

Obsurfable records AI answers to buyer-style prompts in its research corpus (3 observations for this page). Metrics are distributions over observations, not a single static ranking.

Which AI systems does Obsurfable collect answers from?

OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, and Meta AI.