Welcome
This questionnaire is driven by a JS schema object — every question, type, and conditional is defined as data. The answers come back out as structured JSON.
Answer the sample questions, then export the payload.
Nothing submits until you reach Export JSON.
Tap any row to edit. Then export.
Payload ready
The schema drives both the UI and the export shape. Every field key maps directly to its schema ID.
Schema-driven discovery questionnaire. The entire form — sections, fields, types, conditional follow-ups — is defined by one JS object. Edit the schema, the UI and JSON export update automatically.
Renders a multi-section intake form from a declarative JS schema. Supports text, select (single/multi), radio, and conditional reveal fields. Collects answers and exports a typed JSON payload keyed to the schema.
Schema definition (sections + field types + conditional rules) • user’s form answers
Structured JSON payload: schema-keyed answers with question text, section label, and typed value — ready for API, DB, or PDF generation
{ id:"project_type", section:"Basics",
type:"single",
title:"What are we building?",
options:[
{value:"web", label:"Website"},
{value:"app", label:"Web app"},
{value:"api", label:"API / backend"}
]
},
{ id:"has_branding", section:"Basics",
type:"single", conditional:true,
title:"Do you have branding?",
options:[{value:"yes",label:"Yes"},{value:"no",label:"No"}]
},
// ↓ only appears when has_branding === "yes"
{ id:"brand_assets", section:"Basics",
type:"text", showWhen:{field:"has_branding",value:"yes"},
title:"Describe your brand assets" }
The schema is the source of truth for both the rendered form and the exported JSON shape.
Real app: OOG Intake — vanilla JS + Express + Supabase, deployed on Vercel. The schema drives an onboarding questionnaire; answers are stored to a DB and emailed to the team. This demo uses fictional sample data (Meridian Labs) — no real client data.