Skip to main content
All guides

Headless forms

What is a headless form?

Know when a form should live inside your product, what the form system should handle, and when a hosted link is still enough.

6 min readUpdated 2026-06-22For product teams adding forms inside a web app.

Short answer

A headless form is a form where your app owns the screen, the layout, and the components, while a form service handles the form definition, validation, submissions, files, and response workflow. Visitors stay inside your product instead of going to a hosted form page or iframe.

Use headless forms when the form is part of the product experience.

Avoid them for quick one-off surveys where a hosted link is enough.

Check what happens after submit: responses, files, exports, webhooks, and edits matter as much as fields.

01

What headless means in practice

Headless means the form system does not force its own page or visual frame on your product. Your app renders the fields. Your CSS, layout, route, analytics, and account context stay in charge.

The form service still does useful work. It stores the form definition, validates answers, records responses, keeps versions readable, handles file uploads, and gives your team somewhere to review what came in.

  • Your app controls the interface.
  • The form service controls the form plumbing.
  • The respondent should not feel like they left your product.

02

When a headless form is the right fit

Headless forms are useful when the form sits in a real product flow. Think onboarding, cancellation feedback, customer intake, quote requests, job applications, account setup, or support forms that need files.

They are less useful when you only need a public survey link. In that case, a hosted form builder can be faster and good enough.

Use case

Simple survey link

Hosted form

Usually fine

Headless form

Often more setup than needed

Use case

In-app onboarding

Hosted form

Feels like a detour

Headless form

Fits the product flow

Use case

Logged-in customer form

Hosted form

Harder to pass context

Headless form

Can use account and route context

Use case

File-heavy intake

Hosted form

Often hits storage limits

Headless form

Can connect to your storage setup

03

What to look for before choosing one

The renderer is only one part of the decision. A form becomes work after someone submits it. You need to know where responses go, how files are stored, whether old responses stay readable after edits, and who can change the form later.

If a tool only gives you a component but no response workspace, you may still end up building the admin table yourself.

  • Native rendering, not an iframe wrapped in a component.
  • Validation that runs from the same schema as the renderer.
  • A response grid your team can use without engineering help.
  • File upload handling that fits your storage and privacy needs.
  • A way to edit live forms without redeploying every copy change.

04

How Fillo approaches headless forms

Fillo is built for product teams that want forms inside their own app. You can define a form in code with the SDK or build it in the editor, then render it as real controls in React or another web frontend.

Fillo keeps the schema, responses, files, exports, webhooks, and form versions together. The goal is not just to show fields. The goal is to stop forms becoming another small internal product you have to maintain.

Questions

Quick answers.

Not always. Many embedded forms are still iframes. A headless form renders through your app, so the fields are part of your DOM and can use your layout and components.

Usually for the first install, yes. After that, the right setup lets non-developers edit labels, choices, required fields, and destinations without a deploy.

Yes. Headless describes how the form renders. The form can still be managed in a visual editor behind the scenes.