Start with
something simple.
Text, passwords, choices, files, and timezone-aware dates. Validation and behavior rules stay together in your schema.
Explore the fields →Meet Tungsten Sprout. A schema-driven form engine and visual editor for React. Build dynamic forms, connect your data, and keep behavior in one portable schema.
Fields are the seeds. Rules are the connections.
Your interface is whatever you want it to become.
Text, passwords, choices, files, and timezone-aware dates. Validation and behavior rules stay together in your schema.
Explore the fields →Arrange groups as cards, tabs or steps. Add repeaters that grow, shrink and nest while their values stay together.
Try a repeating form →Build visually, read the JSON, and watch the real form state. The editor uses the same engine as the forms it creates.
Take a closer look →Tungsten keeps your schema, behavior and design connected. Its Rust and WebAssembly engine evaluates a graph of fields; React brings that state to life.
Plant it in your project →{
"schemaVersion": "sprout",
"form": [
{
"type": "text",
"key": "name",
"view": {
"label": "Your name"
},
"validators": [
{
"kind": "required"
}
]
}
]
}One schema. From the editor to your application.
Bind fields to named data sources, show loading and retry failures, and keep dependent selections consistent.
Learn more →Upload on selection or submit. Keep stored file references with your form data.
Learn more →Editable JSON translations for labels, controls, options, and validation. Switch language without losing edits.
Learn more →Load existing values and nested collections. Receive evaluated state and validated submissions in your own callbacks.
Learn more →Cards, rows, tabs, steps, overlays, and nested repeaters share one schema and one validation engine.
Learn more →Use the Tungsten design or supply React renderers. Core keeps values, rules, and validation consistent.
Learn more →Building proprietary software? Commercial licenses are available. Custom development, integrations, and support come directly from the developer.
Start from a small form or an empty canvas. Make it yours.
Start building ↗