Skip to content

ginkgobioworks/react-json-schema-form-builder

Repository files navigation

React JSON Schema Form Builder

npm CI License GitHub issues

This repository contains code for a React JS Component called the FormBuilder that allows the user to visually configure a JSON Schema encoded form by dragging, dropping, and editing card elements. An example use case for this tool could be for building an app that allows users to create and distribute their own surveys. The React JSON Schema Form Builder provides components to allow users to dynamically build such survey forms. The Form Builder is also customizable, and can incorporate novel form elements (like a special email address or file upload input), specified by the developer building the survey creation app.

This component is wrapped around a demo app that demonstrates how the tool can be used in conjunction with a code editor and Mozilla's React JSON schema form viewer to build a form and maintain a live, code representation of it in real time.

The Form Builder is available as an NPM package here.

View the Form Builder in action here

More extensive documentation is available here

Requirements

  • React 19+
  • Node.js 20+ (LTS)
  • Material-UI (MUI) 7+

Quickstart

npm i --save @ginkgo-bioworks/react-json-schema-form-builder @mui/material @emotion/react @emotion/styled

Usage

import React, { useState } from 'react';
import { FormBuilder } from '@ginkgo-bioworks/react-json-schema-form-builder';

function Example() {
  const [schema, setSchema] = useState('{}');
  const [uischema, setUiSchema] = useState('{}');

  return (
    <FormBuilder
      schema={schema}
      uischema={uischema}
      onChange={(newSchema, newUiSchema) => {
        setSchema(newSchema);
        setUiSchema(newUiSchema);
      }}
    />
  );
}

export default Example;

For more usage examples, see the Usage documentation page

Contributing

See the Contributing page for information about improving the Form Builder.

License

Copyright 2020-2026 Ginkgo Bioworks, Inc. Licensed Apache 2.0.

About

Visual editor for forms based on json schema, built in React JS

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages