A modern, visual tool for creating JSON Schema and UI Schema configurations for forms. Built with React, TypeScript, and Material-UI, this application provides an intuitive interface for building form schemas without writing code.
- Visual Form Builder: Click-to-add interface for creating form fields
- Multiple Field Types: Support for text, number, boolean, select, and textarea fields
- Real-time Preview: Live preview of your form as you build it
- Schema Export: Generate both JSON Schema and UI Schema
- Field Validation: Built-in validation with configurable rules
- Field Reordering: Move fields up and down to organize form structure
- Schema Management: Copy to clipboard or download as JSON files
- Grid Layout Customization: Arrange fields in a responsive grid, with options to define fields width.
- Node.js 18+
- npm, yarn, or pnpm
- Clone the repository:
git clone https://github.com/M3MONs/json-form-schema-generator.git cd json-form-schema-generator- Install dependencies:
npm install # or yarn install # or pnpm install- Start the development server:
npm run dev # or yarn dev # or pnpm dev- Open your browser and navigate to
http://localhost:5173
- Frontend Framework: React 19.1+
- Language: TypeScript 5.8+
- Build Tool: Vite 7.1+
- UI Library: Material-UI (MUI) 7.3+
- Form Library: React JSON Schema Form (RJSF) 6.0+
- Validation: AJV JSON Schema Validator
- Styling: Emotion (CSS-in-JS)
- Add Fields: Click on field type buttons to add fields to your form
- Reorder Fields: Use the up/down arrow buttons to reorder fields
- Configure Fields: Select a field to edit its properties in the right panel
- Set Validation: Configure validation rules, required fields, and constraints
- Preview: View your form in real-time in the center panel
- Export: Copy or download the generated JSON Schema and UI Schema
- Text: Single-line text input with placeholder and validation
- Textarea: Multi-line text input with configurable rows
- Number: Numeric input with min/max validation
- Boolean: Checkbox or radio button for true/false values
- Select: Dropdown with custom options
- Basic Properties: Name, title, description, placeholder
- Validation: Required field, min/max values, custom patterns
- UI Options: Widget type, inline display, disabled state
- Help Text: Additional guidance for users
The application generates two types of schemas:
Standard JSON Schema for form validation and structure:
{ "type": "object", "properties": { "email": { "type": "string", "title": "Email Address", "format": "email" } }, "required": ["email"] }UI-specific configuration for form rendering:
{ "email": { "ui:placeholder": "Enter your email address", "ui:help": "We'll never share your email" } }npm run dev # Start development server npm run build # Build for production npm run preview # Preview production build npm run lint # Run ESLintnpm run buildThe built files will be in the dist/ directory, ready for deployment.
This project is licensed under the MIT License - see the LICENSE file for details.
- React JSON Schema Form for the form rendering engine
- Material-UI for the beautiful component library
- Vite for the lightning-fast build tool
Made by M3MONs