Skip to main content
Menu
On this page

Tally alternative for in-product forms

Compare Tally with Fillo when a hosted form moves into your app: native controls in your own route and a schema shared across validation and responses.

When an embed stops being enough

Tally is quick for a link, popup, or iframe. Fillo is for the point where the form needs your components, signed-in context, and product behavior.

Use your components, not an iframe.

Keep the form on your route and let your design system own every visible control.

app.acme.co/onboarding/check-in

Onboarding check-in

Powered by Fillo

Edit once. Validate everywhere.

Stable field IDs carry from the rendered form through server checks, responses, and exports.

Know who answered inside your app.

Attach the account and route without making the person repeat details you already know.

Put uploads where your team works.

Connect your own storage and keep each file attached to the response that brought it in.

Tally is a hosted builder. You share its forms as a link, popup, or iframe. Fillo renders the form inside your app and handles validation, uploads, and responses behind it.

Which should you choose?

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 schema belongs in code, or needs to be shared across rendering, validation, responses, and exports.
  • Signed-in account identity should travel with the response.
  • Uploaded files must go directly to Google Drive, Box, or S3-compatible storage such as Amazon S3 or Cloudflare R2 that you connect.

When to stay on Tally

  • The form never touches your product — a hosted link or popup does the job.
  • It depends on Tally's payments, custom domains, or non-numeric calculations. Fillo doesn't have those today — its calculated fields handle numbers only.
  • Nobody on the team is going to touch code for this form, and the current integrations already work.

Key differences

DecisionFilloTally
Rendered formNative React or DOM controls, fully headless UI, or a hosted pageTally-hosted form in standard, popup, or full-page embeds
AuthoringDashboard or typed defineForm() schemaDocument-style visual builder
Application identityOptional server-verified respondent ID from your appHidden values and Tally's duplicate-submission controls
File destinationBrowser-direct upload to storage connected by your workspaceFiles collected and managed through Tally's service and plan rules
CalculationsNumeric calculated fields: totals and derived values, recomputed on the serverCalculations are a documented Tally feature
PaymentsNo payment field todayPayment collection is a documented Tally feature
Pricing shapeFillo plans limit completed responses; renderer access is included on both plansTally advertises unlimited forms and submissions within its fair-use policy

Check Fillo plans and limits and Tally's current pricing before comparing costs for a live form.

What you would need to change

Existing Tally formExpected work
Questions, required fields, and a single completion screenRebuild the fields, publish, and replace the link or embed
Pages, hidden values, logic, numeric calculations, uploads, and destinationsMap each rule and setting, rebuild calculations as calculated fields, connect storage, and test every path
Payments, custom code, non-numeric calculations, or automations built around Tally payloadsRedesign those parts and update downstream consumers before cutover

Old Tally submissions don't become Fillo responses. Export them and keep the archive under its existing access and retention policy.

Next step

Open the editor and rebuild one real form first. If it works for your team, read Migrate from Tally for the full checklist.

Updated

Was this page helpful?