← Back to Workshop

Formy

AI-powered form builder that understands natural language

用自然语言构建表单的 AI 工具

Building forms is tedious. Every business needs them—signups, surveys, feedback, registrations—but creating forms involves repetitive UI work: dragging fields, setting validation rules, configuring logic, styling components.

Existing form builders are either too simple (limited field types, no logic) or too complex (enterprise tools with steep learning curves). Non-technical users struggle with conditional logic and validation. Developers waste time on UI work instead of building core product features.

The core insight: form structure maps naturally to natural language. When you describe a signup form, you already specify fields, types, and validation ("email field, required, must be valid format"). Why make users translate that mental model into clicks and dropdowns?

1. Design for Transparency, Not Magic

Early prototypes hid the AI completely—type a description, get a form. User testing revealed a problem: users didn't trust it. When the AI misunderstood, they had no way to correct it. When it worked, they didn't know why it worked.

Solution: Show the AI's interpretation before generation. Display parsed fields, validation rules, and conditional logic as structured previews. Let users edit the interpretation, not just the prompt. This creates a feedback loop: users learn how to write better prompts, and the system learns what users expect.

2. Escape Hatches at Every Level

AI-generated forms are starting points, not final products. Every element must be editable through both natural language and direct manipulation. Users can:

  • Refine prompts to adjust the entire form
  • Click individual fields to edit properties directly
  • Export to code (React, Vue, HTML) for full customization
  • Import existing forms to iterate with AI assistance

This prevents AI lock-in. Users never feel trapped by what the AI generated. If the AI can't do something, the user can.

3. Progressive Complexity

Simple forms ("contact form with name, email, message") work instantly. Complex forms (multi-step flows, conditional logic, custom validation) require more detailed prompts or manual refinement.

Key decision: We don't try to infer complex logic from vague prompts. Instead, we make complexity explicit. "Show field B only if field A is 'yes'" maps directly to readable conditional logic. This makes the system predictable: users understand what the AI can parse and what requires manual specification.

4. Architecture: Constrained Generation

Technical approach: Fine-tuned LLM generates structured JSON (field definitions, validation schemas, logic rules), not HTML/code directly. This JSON feeds into a React renderer with pre-built, accessible components.

Why constrained? Unconstrained code generation produces inconsistent output, accessibility issues, and security risks. Structured generation ensures every form follows best practices: proper ARIA labels, keyboard navigation, validation feedback, responsive layouts.

Model choice: Started with GPT-4, moved to fine-tuned GPT-3.5 for cost/latency. Fine-tuning on form-description pairs dramatically improved accuracy while reducing inference time from 8s to 2s.

Current Status: Live product with paying customers. Primary users are small businesses, marketing teams, and indie developers who need forms quickly without hiring developers.

~2,000 Forms created
~85% Generated without edits
2.3s Avg. generation time

Key Learning: Transparency beats magic. Users who see the AI's reasoning trust it more, even when it's imperfect. Escape hatches turn a tool with 85% accuracy into one that's useful 100% of the time.

What's Next: Expanding to workflow automation (conditional emails, integrations) and custom component libraries. The core insight—natural language to structured UI—applies beyond forms.

I led product and engineering as founding team member / technical co-founder.

Product Strategy

Defined "transparency over magic" design principle through user research. Conducted 30+ user interviews to identify friction points in existing form builders.

System Design

Architected constrained generation approach: LLM → JSON schema → React renderer. Chose fine-tuning strategy and built training pipeline for form-description pairs.

Core Implementation

Built frontend (React + TypeScript), prompt engineering, model fine-tuning workflow, and form renderer with accessibility compliance (WCAG 2.1 AA).

Technical Decisions

Evaluated GPT-4 vs fine-tuned GPT-3.5 tradeoffs. Chose latency + cost optimization without sacrificing quality. Reduced inference cost by 80% through fine-tuning.