Declare the form.
FieldCraft renders the rest.
A schema-driven form engine for React. Multi-step navigation, conditional logic, validation, computed fields and drafts — all from one typed object you can version, diff and review.
{
"id": "event-registration",
"settings": {
"showProgress": true,
"allowDraftSave": true
},
"sections": [
{
"id": "attendee",
"title": "Attendee",
"questions": [
{
"id": "name",
"type": "short_text",
"label": "Full name",
"required": true
},
{
"id": "email",
"type": "email",
"label": "Work email",
"required": true
},
{
"id": "ticket",
"type": "single_select",
"label": "Ticket",
"options": [
{
"label": "Standard",
"value": "standard"
},
{
"label": "Workshop",
"value": "workshop"
}
]
},
{
"id": "diet",
"type": "short_text",
"label": "Dietary needs",
"showIf": {
"field": "ticket",
"operator": "eq",
"value": "workshop"
}
}
]
},
{
"id": "payment",
"title": "Payment",
"questions": [
{
"id": "card",
"type": "short_text",
"label": "Card number",
"required": true
}
]
}
]
}Install, describe, render.
The parts you would otherwise write twice.
Four behaviours that are tedious to build by hand and easy to get subtly wrong. Each one is already a line of schema.
Easier to show than to explain.
Four behaviours the engine handles for you, running here on this page — not screenshots. Fill them in, get them wrong, submit them.
Sections become steps. Progress, forward and back navigation are built in. Each step can declare its own showIf condition so the flow adapts to previous answers.
Two layers, four packages.
The engine is plain TypeScript with no UI dependencies. The React renderer sits on top of it and adds the field components. Install whichever one you need.
Or start from one of these.
Schemas written for real forms, cleaned up. Copy one, change the fields, render it.
Contact Form
A two-step contact form with personal details and inquiry fields. Includes name, email, phone, subject dropdown, and message.
Feedback Survey
A comprehensive customer feedback survey with NPS, ratings, Likert scales, feature usage tracking, and conditional follow-up. Three sections covering satisfaction, specifics, and open-ended feedback.
Job Application
A comprehensive 3-section job application form with personal info, position preferences (role, type, salary, remote), experience details, cover letter, and consent.
Things you should know before you rely on it.
Better to find these here than three days into a project.
The core is framework-free by design and ships no UI, but React is the only renderer that exists today. Another framework means writing that layer yourself.
There is no visual builder. Schemas are hand-written, or started from one of the 16 templates and edited.
Postgres, Supabase and webhook are included. Anywhere else is a small adapter you write — the interface is one method, but it is still work.
Getting started and the field reference are complete. The deeper guides are thin, and some of the API is documented only by its TypeScript types.
This is one developer working evenings and weekends. Issues get read; timelines are not promised.
Where it stands right now.
Stated plainly, and kept current — the release figure below comes from the changelog, not from this page.
Install it, write a schema, render a form.
Nothing to sign up for. It’s on npm, the source is on GitHub, and the licence is MIT.