BlogWork With Me →
Open Source · MIT Licensed · Self-Hosted

Stop renting your forms.

SaaS form builders charge you monthly and own your data. FieldCraft is a self-hosted form engine you own forever. Define forms in JSON. Render in React. Ship anywhere.

Live Demo
44 Field Types314 Tests Passing6 Theme PresetsReact 18 & 19MIT LicensedOne Dependency (zod)TypeScript Native<15 KB CoreSSR CompatibleSelf-Hosted
44 Field Types314 Tests Passing6 Theme PresetsReact 18 & 19MIT LicensedOne Dependency (zod)TypeScript Native<15 KB CoreSSR CompatibleSelf-Hosted
44 Field Types314 Tests Passing6 Theme PresetsReact 18 & 19MIT LicensedOne Dependency (zod)TypeScript Native<15 KB CoreSSR CompatibleSelf-Hosted
44 Field Types314 Tests Passing6 Theme PresetsReact 18 & 19MIT LicensedOne Dependency (zod)TypeScript Native<15 KB CoreSSR CompatibleSelf-Hosted
The Problem

Form tools weren't built for developers.

You either rent a SaaS, pay for an enterprise SDK, or build everything yourself.

SaaS Lock-In

SaaS form builders host your forms, own your data, and charge $25–100/month. Cancel and your forms disappear.

Expensive Libraries

Enterprise form SDKs cost $1,000–5,000/year in licensing. For most teams, that’s budget you don’t have.

Build from Scratch

Open-source form libraries handle inputs. The rest — multi-step navigation, conditional logic, scoring, draft saving — is on you.

FieldCraft is the middle ground. A full form engine you own forever. MIT-licensed core. Zero recurring fees.

How It Works

Three steps. Zero vendor lock-in.

Lightweight by design

  • Core engine is under 15 KB
  • Single dependency: zod for schema validation
  • Works with React 18 and 19
  • SSR and RSC compatible

One package. One dependency.

npm i @squaredr/fieldcraft-react
Live Demos

See what JSON can do.

Multi-Step Forms

Wizard navigation with progress tracking, section conditions, and jump logic. Users see only what they need.

1 / 3

Personal Info

Tell us about yourself

Batteries Included

The things you'd have to build yourself.

Production features that other libraries leave to you.

Draft Persistence

Zero config

Users close the tab, their progress is saved automatically.

4-Layer Prefill

URL + Props + Schema

Populate fields from schema defaults, URL params, props, or initial values.

Schema Validation

Catch bugs at boot

Catches duplicate IDs, broken conditions, and invalid references at startup.

Safe Math Expressions

No eval()

Calculated fields use a safe parser with arithmetic and functions.

Submission Pipeline

Send responses everywhere. At once.

Adapters run concurrently. If one fails, the others still complete.

HTTP

POST to any endpoint with timeout, transform, and custom headers.

Built-in

Supabase

Row-level security and optional field encryption built in.

MIT · Free

PostgreSQL

Drizzle ORM with optional field-level encryption.

MIT · Free

Webhook

HMAC-SHA256 signed payloads with automatic retries.

MIT · Free
How It Compares

SaaS forms vs DIY vs FieldCraft.

Most teams pick one extreme. FieldCraft sits in the middle.

SaaS Form BuildersDIY (Open-Source Libs)FieldCraft
Data ownershipVendor stores dataSelf-hosted
Monthly cost$25–100/moFreeFree (Pro $99 one-time)
Field typesVendor-limited setBuild each one44 included, extensible
Conditional logicConfig UIBuild from scratchSchema-defined + custom
Multi-stepYes (vendor-styled)Build from scratchBuilt-in with branching
Draft savingVendor-managedBuild from scratchBuilt-in (localStorage)
Vendor lock-in
Real-World Schemas

This is what production forms look like.

{
  "id": "event-registration",
  "title": "Conference Registration",
  "settings": { "showProgress": true, "progressStyle": "steps" },
  "sections": [
    {
      "id": "attendee",
      "title": "Attendee Info",
      "questions": [
        { "id": "name", "type": "short_text", "label": "Full Name", "required": true },
        { "id": "email", "type": "email", "label": "Email", "required": true },
        { "id": "company", "type": "short_text", "label": "Company" },
        {
          "id": "ticket",
          "type": "single_select",
          "label": "Ticket Type",
          "required": true,
          "options": [
            { "label": "General — $299", "value": "general" },
            { "label": "VIP — $599", "value": "vip" },
            { "label": "Workshop Bundle — $899", "value": "workshop" }
          ]
        },
        {
          "id": "attending_dinner",
          "type": "boolean",
          "label": "Attending the networking dinner?"
        },
        {
          "id": "dietary",
          "type": "dropdown",
          "label": "Dietary Requirements",
          "showIf": { "field": "attending_dinner", "operator": "eq", "value": true },
          "options": [
            { "label": "None", "value": "none" },
            { "label": "Vegetarian", "value": "vegetarian" },
            { "label": "Vegan", "value": "vegan" },
            { "label": "Gluten-free", "value": "gluten-free" },
            { "label": "Halal", "value": "halal" }
          ]
        }
      ]
    },
    {
      "id": "workshops",
      "title": "Workshop Selection",
      "showIf": { "field": "ticket", "operator": "eq", "value": "workshop" },
      "questions": [
        {
          "id": "workshop_picks",
          "type": "multi_select",
          "label": "Choose up to 3 workshops",
          "required": true,
          "options": [
            { "label": "Building with FieldCraft", "value": "fieldcraft" },
            { "label": "Schema Design Patterns", "value": "schema" },
            { "label": "Advanced Conditional Logic", "value": "logic" },
            { "label": "Telehealth Form Compliance", "value": "telehealth" },
            { "label": "Performance at Scale", "value": "perf" }
          ]
        }
      ]
    },
    {
      "id": "summary",
      "title": "Order Summary",
      "questions": [
        {
          "id": "subtotal",
          "type": "calculated",
          "label": "Subtotal",
          "config": {
            "type": "calculated",
            "expression": "({ticket} == 'general') * 299 + ({ticket} == 'vip') * 599 + ({ticket} == 'workshop') * 899",
            "format": "currency",
            "prefix": "$"
          }
        },
        {
          "id": "consent",
          "type": "boolean",
          "label": "I agree to the terms and cancellation policy",
          "required": true
        }
      ]
    }
  ]
}

3 sections, 12 fields, conditional logic, calculated pricing.

Ticket selection drives workshop visibility. Tax computes automatically.

You could write this JSON by hand.

Or build it visually in minutes.

Try the Visual Builder
Choose Your Workflow

Build your way. Ship faster with Pro.

The engine handles everything. Pro lets you build forms in minutes instead of hours.

FREE · MIT

FieldCraft Engine

  • 44 field types
  • Validation + conditional logic
  • Multi-step + draft saving
  • Submission adapters
Get Started
PRO · $99

FieldCraft Pro

  • Drag-and-drop builder — no JSON to write
  • Live preview as you build
  • Theme editor — customize in clicks
  • Response viewer for submissions
Try the Builder
Live Preview

Try it yourself.

Drag fields, configure validation, set conditions — all without writing a single line of JSON.

Pricing

One-time payment. No subscriptions.

Pay once, own it. Free patch updates within the major version you purchased. The open-source FieldCraft engine and renderer remain free forever (MIT).

Telehealth
$249*
one-time purchase

Everything in Pro plus HIPAA-ready patterns and 15 telehealth-specific field types. Built for healthcare forms.

Everything in Pro
15 telehealth field types
HIPAA-ready patterns
Patient intake templates
Clinical assessment fields
Priority support
Admin Template
$549*
one-time purchase

A production-ready Next.js app with Prisma, authentication, and the Form Builder pre-integrated. Built and delivered by us.

Everything in Pro
Full Next.js application source code
Prisma ORM with database schema
Authentication (login, signup, sessions)
Form Builder integrated and configured
Delivered within 2 weeks of purchase
Coming Soon

*Prices are in USD and exclusive of applicable taxes. Tax may be added at checkout depending on your region. All purchases are processed via Gumroad. Each license key is valid for one production domain. Unlimited development and localhost use. See our Terms of Service and Privacy Policy for full details. No refunds after license key activation.

Get Started

What will you build?

Install the package, write a schema, and render your first form.

View the roadmap
Built with FieldCraft

Tell us what you're building

Help us shape FieldCraft for your use case.