Skip to content

Formily vs VeeValidate

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

Formily

Open source · MIT

A form library for React and Vue that handles complex and JSON-schema-driven forms.

VeeValidate

Open source · MIT

A library for building and validating forms in Vue.js apps.

The short answer

Choose Formily if you need…

  • Frontend developers building data-heavy forms with many linked fields
  • Teams that want forms generated from JSON Schema sent by a back end
  • Projects already using Ant Design or Alibaba Fusion components
  • Teams that want a visual form builder (Designable) alongside the library

Choose VeeValidate if you need…

  • Vue developers who need form validation without writing it from scratch
  • Teams building Vue 3 forms with synchronous or asynchronous rules
  • Projects that use an existing UI component library alongside custom inputs
  • Developers who prefer a small library that leaves the rest of the app to them

Side-by-side

FormilyVeeValidate
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars12.6k11.3k
Setup difficultyIntermediateIntermediate
How you get itInstall with a package managerInstall with a package manager
Main languageTypeScriptTypeScript
Last code update17 months ago8 months ago

What each one is

Formily

Formily is a TypeScript form library that helps developers build forms in React, React Native, Vue 2, and Vue 3. It manages each field's state separately so large forms with many linked fields don't re-render the whole page. It also supports JSON Schema, so forms can be described as data, for example by a back end.

VeeValidate

vee-validate is a JavaScript library for Vue.js that handles form validation, such as checking required fields and tracking error messages. It offers a composition API (useForm, defineField) and declarative Field and Form components, and it works with native HTML inputs or UI library components. A companion package provides built-in validation rules.

Best for

Formily

  • Frontend developers building data-heavy forms with many linked fields
  • Teams that want forms generated from JSON Schema sent by a back end
  • Projects already using Ant Design or Alibaba Fusion components
  • Teams that want a visual form builder (Designable) alongside the library

VeeValidate

  • Vue developers who need form validation without writing it from scratch
  • Teams building Vue 3 forms with synchronous or asynchronous rules
  • Projects that use an existing UI component library alongside custom inputs
  • Developers who prefer a small library that leaves the rest of the app to them

Strengths

Formily

  • The README says field state is managed independently, which aims to avoid slow re-renders in linked forms
  • Supports converting between JSON Schema and its own JSchema format
  • Released under the permissive MIT license

VeeValidate

  • Supports both the composition API and declarative components, so it fits different coding styles
  • Works with native HTML elements and UI library components
  • Large community use, with 11,259 stars and an active npm package

Not ideal for

Formily

  • Simple forms with a few inputs, where a lighter library is enough
  • Projects not using React or Vue, since the README lists only those frameworks
  • Non-developers who want a no-code form tool; the README describes it as a developer library

VeeValidate

  • Non-developers, since it requires writing Vue code to use
  • Vue 2 projects, because the main v4 line supports Vue 3 only; older Vue versions need the v2 or v3 releases listed in the README
  • Projects not using Vue.js, since it is built specifically for Vue

Trade-offs

Formily

  • The README is short and covers little API detail, so setup needs the official documentation site
  • The README mentions two website versions (1.0 and 2.0), so check you are reading the right docs

VeeValidate

  • The main v4 line supports Vue 3 only, so older Vue projects need different versions
  • Requires understanding of Vue reactivity and component patterns to use well
  • The README is brief on details; full usage is in the external documentation site

Getting started

Formily

Install the core package

npm install @formily/core
Step-by-step guide: how to use Formily

VeeValidate

Install with yarn

yarn add vee-validate

Install with npm

npm install vee-validate --save
Step-by-step guide: how to use VeeValidate

Frequently asked questions

What is the difference between Formily and VeeValidate?

Formily: A form library for React and Vue that handles complex and JSON-schema-driven forms. VeeValidate: A library for building and validating forms in Vue.js apps. Formily suits frontend developers building data-heavy forms with many linked fields, while VeeValidate suits vue developers who need form validation without writing it from scratch.

Are Formily and VeeValidate free?

Formily: Free and open source. VeeValidate: Free and open source.

Is Formily or VeeValidate more popular?

Formily has more GitHub stars (12.6k) than VeeValidate (11.3k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to Formily and VeeValidate?

Other options people compare them with include React Hook Form, Ajv, VueUse, SoybeanAdmin, redux-form.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.