Every product needs forms. Just not in a pop-up.
So put them where people already are — onboarding, settings, checkout — looking like the rest of your app. Fillo takes care of the rest: editing, file uploads, and where every answer ends up.
Go on, fill one in.
Every form here is running on Fillo, right on this page — not a screenshot. Poke at them, change your answers, flip a page. It all just works.
Edit the form in the editor or keep it in code
Let teammates adjust copy and options visually, while product teams can still define forms as versioned code.
- Visual edits. Change labels, choices, publish status, close dates, storage, and webhooks from the workspace.
- Code-defined forms. Define a form beside the product feature and sync it with a publishable key.
- Fast first setup. Copy the setup prompt into a coding agent and let it add the first form inside your app.
See everything people send you
Their answers, the files they attached, where it came from, and what you've done with it — all in one tidy list. No spreadsheet to wire up first.
- It's all in one place. The answer, the files, the page it came from, and where it's at — sitting together, ready to read.
- Big files, no fuss. People can attach hundreds of megabytes and it lands with the response — not somewhere separate you have to go dig for.
- Take it with you. Export to CSV the moment someone else on the team needs the data somewhere else.
Jane Mehrota
/onboarding · 2 files
Kai Andersson
/waitlist
Mira Solberg
/intake · 1 file
Use it with whatever you already build in
React, Vue, Svelte, Astro, or plain browser JavaScript — same SDK, same form. Not using a framework? There's a single script tag for that too.
- React? One line.. Install @usefillo/react and drop the component in — that's it.
- Everything else. @usefillo/dom renders the same forms in Vue, Svelte, Astro, or as a web component.
- No build step? Fine.. Add one script tag to a plain HTML page and it just works.
npm i @usefillo/reactEverything else a form needs.
17 field types
Text, choice, rating, scale, ranking, matrix, signature, date, file, and more.
Conditional logic
Show, hide, and branch questions based on earlier answers.
Answer piping
Pull earlier answers into later questions and messages.
Multi-page forms
Break long forms into steps, with validation per page.
Theme editor
Match the form to your brand — colour, radius, type.
Templates
Start from a contact, NPS, intake, or application form.
URL prefill
Prefill any field — including hidden ones — from the URL.
Signed webhooks
Delivered to your endpoint, signed and retried.
Email notifications
Notify your team, and send respondents a receipt.
Spam protection
Honeypot plus rate limiting on every submission.
CSV export
Take your responses anywhere, any time. No lock-in.
Insights
Views, starts, completion, drop-off, and segments.
Draft with AI
Describe a form in a sentence and get a real schema.
Bring your own storage
Files go straight to your Drive or S3 bucket.
EU hosting
Hosted in the EU, encrypted in transit and at rest.
Workspaces
Invite teammates to edit forms and work responses.
Questions, answered.
No. The visual editor needs no code — drag blocks, set options, publish. Developers can define the same form in code instead, or switch between the two; both share one schema.
Yes — React, Vue, Svelte, Astro, a web component, or plain browser JavaScript via @usefillo/dom. It renders in any web app. There's no native React Native / mobile SDK yet.
Forms render as real, labelled HTML controls in your own DOM — not an iframe — so keyboard and screen-reader behaviour works, and inherits your own focus styles.
Signed, retried webhooks and a REST API push responses wherever you need, and you can export to CSV any time. Native one-click CRM / Zapier integrations aren't built yet.
Your questions are your own text, in any language, and right-to-left layouts work. You control every label, so the form speaks whatever your users do.
Straight into your own storage — Google Drive or an S3-compatible bucket. The file bytes never touch our servers; we keep a reference so the file stays attached to the response.
See it inside your own app in minutes.
Copy the setup prompt into your coding agent, or open the editor and shape a form by hand — no code needed.