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-inOnboarding check-in
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.
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.
Keep the form on your route and let your design system own every visible control.
app.acme.co/onboarding/check-inOnboarding check-in
Stable field IDs carry from the rendered form through server checks, responses, and exports.
Attach the account and route without making the person repeat details you already know.
Connect your own storage and keep each file attached to the response that brought it in.
Tally is a hosted builder with a famously generous free plan — unlimited forms and submissions within its fair-use policy. You share its forms as a link, popup, or iframe. Fillo picks up where that model stops: when the form has to be part of your product rather than a page you link to.
Tally's free tier really does include the builder features. The lines you'll actually hit are on its pricing page (as of August 2026):
None of that is a complaint about Tally's pricing — a free tier this generous has to draw lines somewhere. It's a map of where "free and hosted" ends and "part of your product" begins.
| Decision | Fillo | Tally |
|---|---|---|
| Rendered form | Native React or DOM controls, fully headless UI, or a hosted page | Tally-hosted form in standard, popup, or full-page embeds |
| Authoring | Dashboard or typed defineForm() schema | Document-style visual builder |
| Application identity | Optional server-verified respondent ID from your app | Hidden values and Tally's duplicate-submission controls |
| File destination | Browser-direct upload to storage connected by your workspace | Files collected and managed through Tally's service and plan rules |
| Calculations | Numeric calculated fields: totals and derived values, recomputed on the server | Calculations are a documented Tally feature |
| Payments | No payment field today | Payment collection is a documented Tally feature |
| Pricing shape | Fillo plans limit completed responses; renderer access is included on both plans | Tally 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.
| Existing Tally form | Expected work |
|---|---|
| Questions, required fields, and a single completion screen | Rebuild the fields, publish, and replace the link or embed |
| Pages, hidden values, logic, numeric calculations, uploads, and destinations | Map 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 payloads | Redesign 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.
Open the editor and rebuild one real form first. If it works for your team, read Migrate from Tally for the full checklist.
This page for agents: /docs/compare/tally.md · index at /llms.txt
Updated