Form services
Form services
Three roles, locked at decisions/architecture/forms-trio.md: Web3Forms + Static Forms cover contact-form HA (vendor-redundant pair); Tally handles rich / multi-step / conditional forms. All three free, no card.
| Service | Status | One-line role |
|---|---|---|
| web3forms.md | active | Contact form — primary (browser-only, domain-bound key, unlimited free) |
| static-forms.md | active | Contact form — fallback (different vendor + edge; auto-swapped on Web3Forms failure) |
| tally.md | active | Rich form builder — multi-step, conditional logic, integrations |
| formspree.md | fallback | Second documented swap target |
Why two contact backends?
Single-vendor risk. If Web3Forms quotas tighten or the service has an outage, every contact form on every site goes dark unless we have a sibling on different infrastructure. Same pattern as the two-captcha pair and the double security-headers audit.