Low-code forms — less programming effort

Describe forms instead of coding them field by field. Less custom code, cheaper changes, live faster.

Get started

Instead of coding every form field by field, describe it — and get a validated form. Less custom code, faster changes. Below is the Vue getting-started path.

Three building blocks

JSON Schema

Fields, types, and required properties. Optional pieces like uploads, maps, or computed values are available when you need them.

UI schema

Layout, steppers, groups, and labels — separate from the data model, editable with drag & drop.

Form data

The filled JSON object, bound to your application or API.

Already included

Visual editor

Edit schema and layout in the browser — palette, drag & drop, and suggestions for unused fields.

Computed fields

Fill sums or status automatically. Make fields read-only or hidden when needed.

Files & maps

Uploads with preview, or drawing on a map — try them in the scenarios.

Formats & selects

Email, phone, date, lists — plus rating, progress bar, and multilingual labels.

Start in four steps

  1. Install packages

    In this monorepo, run pnpm install at the repository root. In your own app, add the @jsonschema-editor/* packages you need.

    pnpm add @jsonschema-editor/vue @jsonschema-editor/vue-extensions \
      @jsonschema-editor/json-schema @jsonschema-editor/json-schema-extensions \
      @jsonschema-editor/ui-schema
  2. Register extensions

    One call enables formats, value lists, computed fields, file upload, maps, rating, and progress bar.

    import { registerDefaultVueExtensions } from "@jsonschema-editor/vue-extensions";
    
    registerDefaultVueExtensions();
  3. Load schema and UI

    documentFromJSONWithExtensions() keeps extension attributes. Load a UI schema or generate one from the schema.

    import { documentFromJSONWithExtensions } from "@jsonschema-editor/json-schema-extensions";
    import { UiSchema } from "@jsonschema-editor/ui-schema/bridge";
    
    const schema = documentFromJSONWithExtensions(schemaJson);
    const uiSchema = UiSchema.fromJSON(uiSchemaJson);
  4. Render the form

    JsonSchemaForm binds data with v-model. JsonSchemaFormEditor edits schema and layout in the same model.

    <JsonSchemaForm
      v-model="formData"
      :schema="schema"
      :ui-schema="uiSchema"
      locale="en"
    />

Packages at a glance

@jsonschema-editor/json-schemaSchema model, validation, paths
@jsonschema-editor/json-schema-extensionsFormats, lists, x-computed, x-file, x-geometry, …
@jsonschema-editor/ui-schemaUI schema types and bridge
@jsonschema-editor/vueForm and visual editor
@jsonschema-editor/vue-extensionsWidgets for the extensions

Try it now

The scenarios ship ready-made forms — from screening and insurance claims to freight, building projects, and vehicle configuration. Test the form, edit schema and layout, watch JSON update live.