No client library
Post to a URL from any framework or none, urlencoded or JSON. A form that needs JavaScript to submit is a form that fails for somebody.
Point a plain HTML form at one URL. The submission is stored, the spam is separated from the people, and the rest is forwarded to your inbox or a signed webhook.
Post to a URL from any framework or none, urlencoded or JSON. A form that needs JavaScript to submit is a form that fails for somebody.
A hidden field and a clock, rather than a third party profiling your visitors. Flagged submissions are kept and shown separately, never forwarded, because a honeypot has false positives.
Forwarded to an email address or a signed https webhook, with retries and every attempt listed. A form that silently stops forwarding is worse than one that never worked.
Named rather than left out.
Text fields only. An attachment is refused rather than silently dropped.
For an email destination, delivered means the provider accepted it. A dead address still reads as delivered.
Forms shares an account, a project and a bill with Monitor, Analytics and the rest. Two tools that already agree on what a release is beat two tools you reconcile by hand.