form0form0

Open-source, framework-agnostic,AI-ready form ecosystem

Schema-driven form and data-collection logic: validation, visibility, and calculations for web, CLI, mobile, and AI agents.

npm install -g form0-cli
Try it!View docs

Live playground

A real form0 workspace, in your browser

Use the interactive CLI, edit files, launch web and Expo projects, and try SQLite or PostgreSQL in a disposable environment.

{

"name": "Site Inspection",

"elements": [

{ "type": "TextField", "data_name": "site", "required": true },

{ "type": "NumericField", "data_name": "units" },

{ "type": "NumericField", "data_name": "unit_cost" },

{ "type": "CalculatedField", "data_name": "total",

"calculate": "SETRESULT(ROUND($units * $unit_cost, 2));" },

{ "type": "TextField", "data_name": "sign_off",

"visible_conditions": { "field_id": "total", "operator": "greater_than", "value": 5000 } }

]

}

Terminal

form0@playground:~/quickstart$ form0 test

✓ schema valid · 5 fields · 1 calculated · 1 conditional

form0@playground:~/quickstart$ ▌

Preview of the form0 playground editor and terminal

Playground preview

The live environment is not enabled yet. You can still install form0 locally above.

Highlights

A closer look at AI-assisted editing and offline mobile forms.

AI-assisted schema editing in the CLI

Preview

Describe a change in plain language and the CLI proposes edits to your schema. form0-core validates each proposal before you see it, and nothing is written to disk until you apply it. Use your own API key or subscription, or a local model through Ollama.

AI authoring docs

Offline forms on mobile

The same schema runs in React Native. Calculations, visibility, and validation are evaluated on the device, so forms work without a connection. Your app stores the records and decides when to sync them.

React Native mobile integration docs

Discover

Who form0 is for, what it does, how you build with it, and why it is shaped this way.

Who?

form0 is built for developers and anyone comfortable using a CLI and code editor. You have full control over your form logic, schema, and integration.

What?

A schema-driven engine for forms and data collection that handles calculations, visibility, validation, and events. Framework-agnostic core with UI components for React and React Native.

  • JSON-based schema definition
  • Runs anywhere: Node.js, browsers, mobile
  • UI components via a dedicated library
  • No auth, no data persistence: you own it

How?

Multiple ways to build and edit your form schema:

  • Edit JSON schema manually
  • Import from CSV file
  • CLI: manually add/edit/remove fields
  • CLI: AI-assisted editingPreview
  • Drag-and-drop UI in reform

Why?

Stop rebuilding the same form logic in every app. Calculations, visibility, and validation live in one JSON schema instead of being scattered across components, so they are easier to test and change. The same schema drives web and mobile with no duplicated code, and form0 embeds into any existing project with zero framework lock-in.

For Teams & Organizations

  • Infrastructure inspections (buildings, utilities, equipment)
  • Environmental surveys and audits
  • Mobile workforce apps with offline support
  • Compliance forms with complex conditional logic
  • Online surveys and questionnaires
  • And more...

For Personal Projects

  • Collection management (books, records, collectibles)
  • Field data apps (nature observation, travel logs)
  • Inventory and asset tracking
  • Structured data capture on the go
  • Online surveys and questionnaires
  • And more...

FAQ

What people ask before installing.

They solve different layers of the problem, so the answer depends on which one you are comparing.

React Hook Form and Formik manage form state inside a single React app. You still write the conditional logic, validation, and calculations by hand, in components. form0-core moves that logic into a JSON schema and runs it anywhere: Node, browser, React Native, CLI. It is not a competitor to them, it is the layer underneath, and the two can coexist.

form.io is the closest relative, a JSON-driven engine with a builder and a renderer of its own. The difference is how much you keep control of. form0-core is only the engine, with no renderer and no data model imposed on you. form0-react and form0-react-native give you ready-made components when you want them, and every one of them can be replaced or ignored, so the form logic fits the design system you already have instead of the other way around.

Support the project

form0 is free and MIT licensed. It gets better when people use it, report what breaks, and pitch in.

Contribute

Open an issue when something does not work, or send a pull request. A bug report that comes with a way to reproduce it is worth as much as code.

Sponsor

Sponsorship covers the running costs of an open-source project: infrastructure, documentation, and testing. GitHub Sponsors and Open Collective Europe both work for individuals and companies alike — use whichever is easier for you.

Spread the word

Star the repositories, write about what you built, or tell someone who is wrestling with form logic. Visibility is what brings the next contributor.