Static Forms
Static Forms
Role
The fallback contact-form backend. The <ContactForm> component
in posts to
Web3Forms by default; on 5xx / network failure
or when an env-var flips, the same payload goes to Static Forms
instead. Different vendor, different edge — a Web3Forms outage or
quota cliff never blocks contact submissions across the family.
Free tier
- Unlimited submissions per form
- Unlimited forms
- Email forwarding to any address
- Spam filtering (built-in honeypot + reCAPTCHA opt-in)
- File attachments
- No per-month cap, no per-form cap documented at family scale
Card / subscription required?
NO. Email-only signup; the form's access key arrives via email. No payment method requested.
Alternatives
- Web3Forms — primary; Static Forms is its sibling.
- Formspree — second documented swap target.
- Tally — different role (rich, multi-step forms).
Swap cost
Low. Same application/x-www-form-urlencoded shape as Web3Forms.
The fallback is wired by toggling the <ContactForm> component's
provider prop at build time per site, or by onError handler at
runtime. Wrapped behind a single import surface in oriz-kit.
Why this is our pick
The user's direction was: "I want a free service for everything" plus "+ Static Forms" — interpreted as defense-in-depth on the contact-form path. Web3Forms covers the common case; Static Forms is the sibling on a different vendor + different edge so neither a vendor outage nor an unannounced quota cap can break "users can contact us."