Privacy
Privacy Policy
FormHook ("we", "us", "our") provides a form backend service at formhook.site. This page explains what data we collect, why, how long we keep it, and what rights you have. We aim to collect the minimum data necessary to operate the service.
1. Data we collect
1.1 Account data
When you sign in, we receive your email address and Clerk user ID from our authentication provider (Clerk). We use these to identify your account and provision your dashboard. We do not receive your password.
1.2 Form configuration data
We store the forms you create, including their names, redirect URLs, notification email addresses, allowed origins (CORS), and honeypot field names.
1.3 Form submissions
When someone submits a form hosted on FormHook, we store:
- The fields they submitted.
- The SHA-256 hash of their IP address combined with a daily-rotating salt stored in Cloudflare KV. We never store raw IP addresses.
- The
Originheader from the submission request, used for CORS validation and abuse review. - The
User-Agentheader. - For file uploads: the file contents, stored on Cloudflare R2 with a server-generated random key, never the user's filename.
- Whether the submission was flagged as spam by honeypot, Turnstile failure, or rate limiting.
1.4 Billing data
Paid plans are processed by Dodo Payments. We receive only your Dodo customer ID, subscription ID, and current plan tier. We do not see or store your card details.
1.5 Operational telemetry
We collect anonymous, aggregate page views via SimpleAnalytics. Runtime errors and request metrics may be sent to Sentry, Datadog, and/or Honeybadger when configured.
2. How we use data
- To deliver form submissions to you in the dashboard, by email, and via outbound webhooks you configure.
- To enforce rate limits, detect spam, and prevent abuse.
- To send transactional emails such as form submission notifications and billing receipts.
- To operate, secure, and improve the service.
We do not sell your data. We do not use your data for advertising.
3. Sub-processors
The following third parties process data on our behalf:
- Cloudflare — compute (Workers), database (D1), key-value (KV), object storage (R2), and CDN.
- Clerk — authentication.
- Resend — transactional email delivery.
- Dodo Payments — billing.
- SimpleAnalytics — privacy-first page analytics.
4. Data retention
- Account data: retained while your account is active and deleted within 30 days of account deletion.
- Form submissions: retained while your account is active. Free-plan submissions older than 12 months are deleted by a scheduled cleanup job when the backend scheduled handler is active.
- File uploads: retained while the parent submission exists.
- Hashed IP addresses: the daily salt rotates every approximately 25 hours, so historical submissions cannot be re-linked to a specific IP after that window.
5. Your rights
You have the right to access, correct, delete, restrict, object to, or export personal data we hold about you. To exercise these rights, email the address listed on our homepage. We respond within 30 days.
6. Security
All traffic is served over HTTPS. Authentication is delegated to Clerk. We verify billing webhook signatures with HMAC-SHA256 and constant-time comparison before processing events. API keys are stored as SHA-256 hashes and shown exactly once at creation. File uploads are validated by inspecting magic bytes, not only the Content-Type header.
We follow least privilege in our infrastructure: the Worker uses Cloudflare bindings, and secrets are managed via Doppler rather than committed to the repository.
7. Children's privacy
FormHook is not directed at children under 16 and we do not knowingly collect personal data from children.
8. International transfers
Data is stored in Cloudflare's global edge network. By using the service, you acknowledge that your data may be processed in regions outside your country of residence, including the United States and the European Union.
9. Changes to this policy
We may update this policy. Material changes will be announced by email to active subscribers at least 14 days before they take effect. The "Last updated" date at the top of this page reflects the most recent revision.
10. Contact
For privacy questions or to exercise your rights, contact the email address listed on our homepage.