Forms that live inside your product.
Create a form with your coding agent or in the visual editor. It shows up right inside your app — your components, your styling, no iframe — while Fillo handles the submissions, file uploads, and responses.
No signup needed to preview
Why not just use Typeform or Tally?
Because a hosted form sends people off to another website to answer. Fillo keeps the form — and its answers, files, and status — right inside your product.
A hosted form tool
With Fillo
Tally / Typeform
Fillo
Embedding
An iframe or a page on another site
Real fields rendered in your own app
File uploads
10–100 MB, kept on their servers
Hundreds of MB, into your own storage
Responses
A basic table — then export to Airtable
Files, source, and status on every answer
Where it's defined
Locked inside their tool
One definition you own — in code or the editor
Overall rating
Deal size
Completion
66.7%
Uploads
Every kind of form, without the plumbing.
17 field types, logic, uploads, themes, and a response grid — all from one definition.
See live examplesWrite it in code, or drag and drop in our editor.
Use one, the other, or both at once — and take the form bottleneck off your team. Both sides edit the same form, so no one waits.
import { FilloForm, defineForm } from "@usefillo/react";
const form = defineForm({
id: "onboarding",
pages: [{ id: "p1", blocks: [
{ id: "email", kind: "email", label: "Work email", required: true },
{ id: "company", kind: "short_text", label: "Company" },
{ id: "docs", kind: "file", label: "Security docs" },
] }],
});
export const Onboarding = () => (
<FilloForm form={form} onSubmit={save} />
);See what's working, and where people drop off.
Track views, starts, and completion in plain numbers, find the question that's losing people, and review every answer in one place.
Views
1,284
Starts
612
Submissions
408
Completion
66.7%
Built in the EU. Your data stays there.
EU-based and EU-hosted
Fillo is built and hosted in the European Union. Your forms, responses, and metadata stay in EU data centers.
Your files, your storage
You connect your own Google Drive or S3 bucket, and uploads stream straight there. The file bytes never pass through our servers.
Encrypted in transit and at rest
TLS on every request and encryption at rest. Webhooks are signed; submissions are rate-limited and honeypot-protected.
Workspace-isolated
Every form, response, and file is scoped to its workspace. GDPR-aligned by design, so you stay in control of personal data.
The forms teams keep rebuilding.
See all examplesNPS survey
A 0–10 score with a follow-up question that only appears for low scores.
Job application
A two-page application with contact details, a CV upload, and a signature.
Contact form
The same SDK restyled with a theme prop to sit on a dark page.
Defined in code
A complete form written as a plain object — no visual editor, two custom fields.
Questions, answered.
No. Your app renders the form as real fields in your own page, using your components and styles. Fillo handles setup, edits, submissions, uploads, and the response workspace around it.
No. Render a local form and see it inside your product before you sign up. Connect a Fillo workspace when you are ready to collect real responses, and your form syncs automatically.
Uploads stream directly into your own storage — Google Drive or any S3-compatible bucket — and stay attached to the answer. Responses land in a grid with their files, source, and status, and export to CSV any time.
Put the first form in your app today.
Paste the setup prompt into your coding agent and get a working form, in your own UI, in minutes — or open the editor and shape it by hand.