Skip to content
Formhook

GDPR-friendly · Hosted in the EU

The EU form backend you paste once and never maintain.

Paste one API key as your form's action. Submissions land in your dashboard and ping your phone instantly - and never leave the EU.

Start freeSee it work with your framework

Free tier: 5 forms · 250 submissions/month · No credit card.

For client work

Build it for your client. Hand over the form and every submission. Same key. No redeploy.

contact.htmlHTML
<form action="https://formhook.app/f/fh_..." method="POST">
  <input type="email" name="email" required>
  <textarea name="message" required></textarea>
  <button type="submit">Send message</button>
</form>

That's the integration. There is no step two.

contact-form

● Live

Submissions

  • Mila Petrović

    Just now

    Can we discuss the new website?

  • Aarav Sharma

    Today

    Does the free plan keep submissions forever?

  • Chloé Martin

    Today

    Are my submissions stored in the EU?

Germany · Kept forever · Export ZIP

New submission - contact-form

Mila: Can we discuss the new website?

Product illustration / not customer data

Read the docs
  • Stored in Germany
  • Kept forever, even on Free
  • Export everything, any plan
  • Built by a studio that uses it
  • Soft cap - never drops a lead

01 / From HTML to your phone

Three steps. Then get back to building.

  1. 01

    Create a form

    Give it a name. Get your unique endpoint.

  2. 02

    Paste the key as your action

    Keep your HTML, your styles, your framework.

  3. 03

    Get pinged

    Live dashboard, native web push and email.

02 / Residency is architecture

EU hosting, no asterisks.

Your submissions are stored in the EU and never leave it - nothing to assess, nothing to renegotiate, nothing that ends up in court.

Browser

Your visitor submits the form over HTTPS.

Cloudflare edge

TLS + DDoS protection. Nothing persisted. No submission-body storage.

Hetzner VPS, Germany

Submissions live here. Kept forever on every plan, including Free.

File uploads → Cloudflare R2, EU

Paid plans: 10 MB per file. EU storage, with short-lived signed download URLs.

Cloudflare R2, EU

File attachments. A separate EU storage boundary.

Safe Harbor and Privacy Shield were struck down. The Data Privacy Framework is under appeal. Formhook's submission storage does not rely on a US transfer framework.

Concrete infrastructure. A published DPA. No residency add-on.

Read the DPA

03 / For the work you ship for others

Ship the site. Hand over the form.

Build and test in your Studio account. When the project wraps, the client gets the form and every submission - not another maintenance agreement.

For client workSee how client handoff works

Client transfer is on the Studio plan

Studio builds + tests

Connect the client site on your account. One form per client.

One-click transfer

A 7-day invite. Pending forms stay live and collecting. Same API key, no redeploy.

Client owns it all

The form and every submission. You keep a metadata-only console.

Studio clients

Metadata only after claim · Illustrative records

  • contact-formActive184 / 30d
  • project-enquiryPending36 / 30d
  • booking-formActive72 / 30d

After claim: name, status and 30-day count only. No submission content.

  • Transfer when the project wraps.
  • One form per client.
  • Maintenance-free after handoff.
  • Pass EU residency into the client's privacy policy.

04 / A small backend. The right defaults.

Everything the form needs after “Send”.

A real ping. Not another inbox tab.

Native web push on desktop and phone, plus email. Included on every plan.

09:41

New submission - contact-form

Mila: Can we discuss the new website?

Kept forever.

Every submission, every plan. Your history doesn't expire when a billing cycle does.

Retention / forever

2026 → 2027 → 2028 → …

export.zip

submissions.json + attachments/

Production defaults, not a checklist for later.

Honeypot, rate limits, optional Turnstile, per-form CORS allowlist and strict redirect validation.

Protection / enabled

  • Honeypot
  • Rate limits
  • X-Auth-Token

CORS allowlist

https://example.com

Bring your own Turnstile secret. Soft caps accept over-quota submissions, with warnings at 80% and 100%.

Send it to the tools you use.

HMAC-signed webhooks. Ready-formatted for Discord, Slack and Teams. Pro+.

POST / WEBHOOK

200 OK · HMAC signature verified

File uploads on Pro+.

10 MB each. Pro: 1 GB. Studio: 10 GB. EU storage.

project-brief.pdf

2.4 MB · Upload complete

Reply from the dashboard.

Keep the conversation with the submission. Pro+.

REPLY TO / mila@example.com

Thanks, Mila. Let's talk about your project.

05 / Drop it in

Your HTML. One new action.

No SDK. No framework lock-in. JSON, form-encoded or multipart - send the form you already have.

  • Hidden honeypot field stops the lazy bots; Cloudflare Turnstile handles the rest.
  • Optional _redirect field for native form posts - strictly validated against your origin allowlist, no open redirects.
  • Per-form CORS allowlist. Browser submissions from unknown origins are rejected at the edge.
See the full integration guide
contact.htmlHTML
<form action="https://formhook.app/f/fh_..." method="POST">
  <input type="email" name="email" required>
  <input name="_gotcha" type="text" hidden>
  <input type="hidden" name="_redirect" value="https://example.com/thanks">
  <textarea name="message" required></textarea>
  <button type="submit">Send message</button>
</form>

POST endpoint only. No read/query API.

07 / Clear limits. No expiry dates.

Start free. Grow into client work.

EU storage, forever retention and a full exit on every plan.

2 months free

Free

For production. Not just a trial.

€0/ mo

Free forever. No credit card.

  • 5 forms
  • 250 submissions / month
  • 1 seat
  • Forever retention
  • Native push + email
  • Honeypot, rate limits, Turnstile
  • CORS allowlist + X-Auth-Token
  • Full ZIP export + import

Pro

For growing sites and independent projects.

€12.50/ mo

billed €150/year

  • Unlimited forms
  • 5,000 submissions / month
  • 3 seats
  • Everything in Free
  • Signed webhooks: Slack, Discord, Teams
  • 10 MB files · 1 GB storage
  • Reply from the dashboard
  • Priority email

Studio

For client work

For the client work you want to hand over.

€40.83/ mo

billed €490/year

  • Unlimited forms
  • 25,000 submissions / month
  • 10 seats
  • Everything in Pro
  • 10 MB files · 10 GB storage
  • Client handoff + multi-client console

Compare all plans

Need higher limits? Get in touch. All plans are billed in EUR via Polar, our Merchant of Record - VAT and invoicing are handled for you.

Your data, your exit

Can I export my submissions?
Yes. Every tier - including Free - can export a complete ZIP of all forms, submissions, and file attachments as JSON, any time, from your account page. Your data is never held hostage.
What happens if Formhook shuts down?
We'd give at least 90 days' notice, with exports available the entire time. Migration is trivial by design: a form's action URL is the only integration point, so switching providers is editing one line of HTML. Your forms keep working until the last day, and leaving takes one line.

08 / Who's behind it

astropixels

Built for our own client work.

Built and run by Astropixels, a web studio that uses Formhook for its own client work. The Studio plan exists because we needed it.

One less thing to maintain

Ship the form, not the backend.

You shouldn't have to write a form receiver in 2026. Spend ten seconds connecting your HTML, then move on.

Cookie preferences

We use a strictly-necessary session cookie and cookieless first-party analytics. With your consent we also run Google Analytics to understand traffic on our marketing pages.