Skip to content

Formily

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

Stars
12.6k
Forks
1.6k
Licence
MIT
Language
TypeScript
Last update
1.4 years ago
Type
Library

No commits in over a year — check for forks or alternatives before adopting.

What it is

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.

  • Build a form whose fields show or hide based on other field values
  • Render a form from a JSON Schema definition returned by an API
  • Use Ant Design or Alibaba Fusion inputs in a form that works out of the box
  • Design forms visually with the Form Builder (Designable)

Great for

  • 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

Not ideal for

  • 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
Step-by-step guide: how to use FormilyInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js · npm or yarn

    Install the core package

    npm install @formily/core
  2. 2

    Run it

    • Read the official guide at https://formilyjs.org
    • Install the package for your framework (React or Vue) as described in the docs
    • Create a form instance and render your first field
    • Try the Form Builder at https://designable-antd.formilyjs.org/ to see generated forms
  3. 3

    Get the most out of it

    • Use JSON Schema when the back end should control the form layout
    • Pair with Ant Design or Alibaba Fusion components for ready-made inputs
    • Use the Form Builder to prototype forms quickly
    • Use the side-effect handling described in the README to build field linkage

Downloads

Strengths

  • 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

Trade-offs

  • 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

How it compares

ProjectStarsTypeLevelUpdatedBest for
formily (this)12.6kLibraryintermediate1.4 years agoFrontend developers building data-heavy forms with many linked fields
react-hook-form44.9kLibraryintermediate5 days agoReact developers building forms with several fields
vee-validate11.3kLibraryintermediate8 months agoVue developers who need form validation without writing it from scratch
vue-admin-better18.9kAppintermediate17 days agoFront-end developers with about a year of experience who want an admin panel starting point
vueuse22.4kLibrarybeginner6 days agoVue 3 developers who repeat common browser logic across projects
soybean-admin15.2kLibraryintermediate16 days agoDevelopers starting a new internal admin or back-office web app with Vue 3

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.