Tally is a hosted form builder whose free plan includes unlimited forms and submissions within its fair-use guidelines, shared as a link or embedded. Fillo renders forms as native components inside your app and handles validation, uploads, and responses behind them.
At a glance
| Tally | Fillo | |
|---|---|---|
| Where it renders | Tally page, or a standard, popup, or full-page embed. The standard embed renders the form inside an <iframe> (Tally widgets) | Native React or DOM components on your own route, or a Fillo-hosted page |
| Styling | Tally's editor. Injecting custom CSS is a Pro feature | Your CSS and components. The default stylesheet is optional |
| Form definition | Tally editor | Fillo editor, or a typed defineForm() schema in your repo |
| File uploads | 10 MB per file on Free. Pro removes the limit | 500 MB per file by default, configurable up to 5,000 MB, sent from the browser to your Google Drive, Box, S3, or R2 |
| Unfinished answers | Partial submissions are a Pro feature | Save and resume on every plan. Only completed responses count toward the limit |
| Payments, calculations | Both on Free | Numeric calculated fields. No payment field |
| Pricing | Free with unlimited forms and submissions within fair use. Pro and Business are paid plans (pricing) | Free includes 200 completed responses a month. Everything starts at €35 or $39 a month for 5,000, with 25,000 and 100,000 tiers. Going over the allowance never stops a form or adds a charge |
| Branding and domains | Pro removes Tally branding and adds custom domains | The default renderer shows a Powered by Fillo badge on Free, and Everything can turn it off. Forms render on your own domain when you embed them |
| Integrations | Webhooks, Google Sheets, Notion, Airtable, Zapier, and Make on Free | Signed webhooks, a Management API, native Slack, Notion, Google Sheets, HubSpot, and Discord destinations, plus Zapier and n8n apps |
When Fillo fits
- The form has to render as native controls inside an existing product route.
- Your component system should own layout, focus behavior, and field rendering.
- The form definition lives in your repo and goes through code review.
- Respondents send files over 10 MB, and the files belong in your own storage.
- Each response should carry your app's user ID, verified by your server.
When Tally is enough
- You collect payments inside the form. Fillo has no payment field.
- The form builds text from answers, such as a status label (Tally calculations). Fillo's calculated fields produce numbers only.
Moving from Tally
Fillo doesn't import Tally forms or submissions, so a move is a rebuild. Numeric calculations carry over as calculated fields.
- Download submissions as CSV from the form's Submissions tab, and keep old uploads with them.
- Map each Tally block to a stable Fillo field ID with the table below.
- Rebuild the form in the editor or as a
defineForm()schema. - Connect storage and reconnect Sheets, Notion, Slack, Zapier, and webhooks.
- Send realistic test responses and confirm each destination received them.
- Replace one link or embed first, then close the Tally form to new submissions.
| Tally block | Fillo field | Check |
|---|---|---|
| Short or long answer | short_text or long_text | Required state and length |
| Choice questions | select, multi_select, or dropdown | Stable option IDs and Other |
| Pages and conditional logic | Fillo pages, visibleIf, and page next rules | Every path and early end |
| Hidden field | hidden, URL prefill, or initialData | Parameter names, and whether the value is trusted |
| File upload | file_upload | Connected storage, file count, types, and size |
| Numeric calculation | calculated | Same inputs and rounding |
| Payment | Your app or a payment provider | Payment status and return route |
Keep the old link or embed ready to restore until the Fillo form has handled real traffic. Don't collect in both tools longer than that, or the record splits in two.
Related
- Embed a Fillo form: Render the form with React, the DOM package, or a hosted page.
- Author forms in code: Keep a typed Fillo schema in your repo.
- Uploads and storage: Connect the storage your files go to.
- Plans and limits: Response, upload, and branding limits.