2026-03-05//LOG
FlowForm: Building Conversational Forms with LLMs
Yes. I am aware of the irony. Three days after ranting about chat interfaces, here I am building FlowForm, a conversational form tool powered by LLMs. But hear me out, because there is a CRUCIAL difference.
Forms have structure. Chat does not. That is the whole point.
FlowForm takes a schema, a set of fields with types and validations, and wraps it in natural language. The user THINKS they are having a conversation, but underneath, every response maps to a typed field. Name goes in the name field. Email gets validated. Phone number gets formatted. The LLM is not making decisions, it is COLLECTING structured data with a friendly face.
The architecture is straightforward. You define your form schema in JSON. FlowForm generates an initial prompt, collects responses turn by turn, validates each one against the schema, and asks follow-ups when validation fails. The LLM handles the natural language part. The schema handles the truth.
I built it because at Yooga we deal with restaurant onboarding. Owners need to fill out 30+ fields. Tax IDs, bank accounts, menu categories, operating hours. A traditional form is a wall of inputs that makes people close the tab. A pure chatbot would hallucinate half the data. FlowForm sits in the middle.
The stack is simple. TypeScript core, framework-agnostic. The LLM integration is pluggable, works with Claude API, OpenAI, or local models. The validation layer uses Zod schemas so you get type safety end to end.
Key insight from building this: the hard part is not the LLM integration. It is handling the EDGE CASES. User gives two fields in one message. User corrects a previous answer. User goes off topic. User pastes a block of text and expects you to parse it. Each of these needs a strategy, and "just send it to the LLM" is not a strategy.
Current status: core library works, React and Vue adapters in progress, CLI demo available. Open source, MIT licensed. Will share the repo link once I clean up the docs.
The difference between FlowForm and "every app is a chat app" is intent. Chat UIs replace interfaces that already work. FlowForm replaces interfaces that DON'T work, long boring forms that nobody wants to fill out. That is when conversation makes sense. When the alternative is worse.