Conforme RGPD · Hébergé dans l'UE
Le backend de formulaires européen que vous collez une fois et ne maintenez jamais.
Collez une seule clé API comme action de votre formulaire. Les soumissions arrivent dans votre tableau de bord et sonnent sur votre téléphone instantanément - et ne quittent jamais l'UE.
Niveau gratuit : 5 formulaires · 250 soumissions/mois · Sans carte bancaire.
Construisez-le pour votre client. Transmettez le formulaire et chaque soumission. Même clé. Sans redéploiement.
<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>C'est toute l'intégration. Il n'y a pas d'étape deux.
contact-form
● En direct
Soumissions
Mila Petrović
À l'instant
Peut-on discuter du nouveau site web ?
Aarav Sharma
Aujourd'hui
Le plan gratuit conserve-t-il les soumissions pour toujours ?
Chloé Martin
Aujourd'hui
Mes soumissions sont-elles stockées dans l'UE ?
Allemagne · Conservé pour toujours · Export ZIP
Nouvelle soumission - contact-form
Mila: Peut-on discuter du nouveau site web ?
Illustration du produit / pas des données clients
Lire la documentation- Stocké en Allemagne
- Conservé pour toujours, même en Free
- Exportez tout, quel que soit le plan
- Créé par un studio qui l'utilise
- Plafond souple - jamais de lead perdu
01 / Du HTML à votre téléphone
Trois étapes. Puis retournez construire.
- 01
Créez un formulaire
Donnez-lui un nom. Obtenez votre endpoint unique.
- 02
Collez la clé comme action
Gardez votre HTML, vos styles, votre framework.
- 03
Soyez prévenu
Tableau de bord en direct, push web natif et e-mail.
02 / La résidence des données, c'est l'architecture
Hébergement UE, sans astérisque.
Vos soumissions sont stockées dans l'UE et n'en sortent jamais - rien à évaluer, rien à renégocier, rien qui finisse devant les tribunaux.
Navigateur
Votre visiteur envoie le formulaire en HTTPS.
Edge Cloudflare
TLS + protection DDoS. Rien n'est conservé. Aucun stockage du contenu des soumissions.
VPS Hetzner, Allemagne
Les soumissions sont stockées ici. Conservées pour toujours sur chaque plan, Free compris.
Envois de fichiers → Cloudflare R2, UE
Plans payants : 10 Mo par fichier. Stockage UE, avec des URL de téléchargement signées de courte durée.
Cloudflare R2, UE
Pièces jointes. Une zone de stockage UE distincte.
Safe Harbor et Privacy Shield ont été invalidés. Le Data Privacy Framework fait l'objet d'un appel. Le stockage des soumissions de Formhook ne repose sur aucun cadre de transfert américain.
Une infrastructure concrète. Un DPA publié. Aucune option de résidence payante.
03 / Pour le travail que vous livrez à d'autres
Livrez le site. Transmettez le formulaire.
Construisez et testez dans votre compte Studio. Quand le projet est terminé, le client reçoit le formulaire et chaque soumission - pas un nouveau contrat de maintenance.
Le transfert client est inclus dans le plan Studio
Le studio construit + teste
Connectez le site du client sur votre compte. Un formulaire par client.
Transfert en un clic
Une invitation de 7 jours. Les formulaires en attente restent actifs et collectent. Même clé API, sans redéploiement.
Le client possède tout
Le formulaire et chaque soumission. Vous gardez une console limitée aux métadonnées.
Clients du studio
Métadonnées uniquement après la reprise · Données d'illustration
- contact-formActif184 / 30 j
- project-enquiryEn attente36 / 30 j
- booking-formActif72 / 30 j
Après la reprise : nom, statut et nombre sur 30 jours uniquement. Aucun contenu de soumission.
- Transférez quand le projet est terminé.
- Un formulaire par client.
- Sans maintenance après la remise.
- Transmettez la résidence UE à la politique de confidentialité du client.
04 / Un petit backend. Les bons réglages par défaut.
Tout ce dont le formulaire a besoin après « Envoyer ».
Une vraie notification. Pas un onglet de boîte mail de plus.
Push web natif sur ordinateur et téléphone, plus e-mail. Inclus dans chaque plan.
09:41
Nouvelle soumission - contact-form
Mila: Peut-on discuter du nouveau site web ?
Conservé pour toujours.
Chaque soumission, chaque plan. Votre historique n'expire pas avec un cycle de facturation.
Rétention / pour toujours
export.zip
Des réglages de production, pas une checklist pour plus tard.
Honeypot, limites de débit, Turnstile optionnel, liste d'origines CORS par formulaire et validation stricte des redirections.
Protection / activée
- Honeypot
- Limites de débit
- X-Auth-Token
Liste d'origines CORS
Apportez votre propre secret Turnstile. Les plafonds souples acceptent les soumissions au-delà du quota, avec des alertes à 80 % et 100 %.
Envoyez-le vers les outils que vous utilisez.
Webhooks signés HMAC. Formatés pour Discord, Slack et Teams. Pro+.
POST / WEBHOOK
Envois de fichiers avec Pro+.
10 Mo chacun. Pro : 1 Go. Studio : 10 Go. Stockage UE.
project-brief.pdf
Répondez depuis le tableau de bord.
Gardez la conversation avec la soumission. Pro+.
REPLY TO / mila@example.com
05 / Intégrez-le
Votre HTML. Une seule nouvelle action.
Pas de SDK. Pas de dépendance à un framework. JSON, form-encoded ou multipart - envoyez le formulaire que vous avez déjà.
- Un champ honeypot caché arrête les bots paresseux ; Cloudflare Turnstile s'occupe du reste.
- Champ
_redirectoptionnel pour les posts de formulaires natifs - strictement validé contre votre liste d'origines autorisées, pas de redirections ouvertes. - Liste CORS par formulaire. Les soumissions navigateur depuis des origines inconnues sont rejetées en bordure.
<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>await fetch("https://formhook.app/f/fh_...", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: "user@example.com",
message: "Hello",
}),
});"use client";
export function ContactForm() {
async function onSubmit(e: React.FormEvent<HTMLFormElement>) {
e.preventDefault();
const data = Object.fromEntries(new FormData(e.currentTarget));
await fetch("https://formhook.app/f/fh_...", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
});
}
return (
<form onSubmit={onSubmit}>
<input name="email" type="email" required />
<textarea name="message" required />
<button>Send message</button>
</form>
);
}curl -X POST https://formhook.app/f/fh_... \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","message":"hi"}'Endpoint POST uniquement. Pas d'API de lecture ni de requête.
06 / Sans framework imposé
Fonctionne avec votre stack.
Site statique, page rendue côté serveur ou un peu de JavaScript. Même endpoint.
07 / Des limites claires. Aucune date d'expiration.
Commencez gratuitement. Évoluez vers le travail client.
Stockage UE, rétention illimitée et sortie complète sur chaque plan.
Gratuit
Pour la production. Pas seulement un essai.
€0/ mois
Gratuit pour toujours. Sans carte bancaire.
- 5 formulaires
- 250 soumissions / mois
- 1 siège
- Rétention illimitée
- Push natif + e-mail
- Honeypot, limites de débit, Turnstile
- Liste d'origines CORS + X-Auth-Token
- Export et import ZIP complets
Pro
Pour les sites en croissance et les projets indépendants.
€12.50/ mois
facturé €150/an
- Formulaires illimités
- 5 000 soumissions / mois
- 3 sièges
- Tout ce qui est dans Free
- Webhooks signés : Slack, Discord, Teams
- Fichiers de 10 Mo · 1 Go de stockage
- Réponse depuis le tableau de bord
- Support par e-mail prioritaire
Studio
Pour les projets clientsPour le travail client que vous voulez transmettre.
€40.83/ mois
facturé €490/an
- Formulaires illimités
- 25 000 soumissions / mois
- 10 sièges
- Tout ce qui est dans Pro
- Fichiers de 10 Mo · 10 Go de stockage
- Transfert client + console multi-clients
Besoin de limites plus élevées ? Contactez-nous. Tous les plans sont facturés en EUR via Polar, notre Merchant of Record - la TVA et la facturation sont prises en charge.
Vos données, votre sortie
Puis-je exporter mes soumissions ?
Que se passe-t-il si Formhook ferme ?
action d'un formulaire est le seul point d'intégration, donc changer de fournisseur revient à modifier une ligne de HTML. Vos formulaires fonctionnent jusqu'au dernier jour, et partir tient en une ligne.Conçu pour notre propre travail client.
Créé et exploité par Astropixels, un studio web qui utilise Formhook pour son propre travail client. Le plan Studio existe parce que nous en avions besoin.
Une chose de moins à maintenir
Livrez le formulaire, pas le backend.
Vous ne devriez pas avoir à écrire un récepteur de formulaires en 2026. Passez dix secondes à connecter votre HTML, puis passez à autre chose.