Créez un formulaire
Un clic dans la console. Vous obtenez un endpoint unique et un snippet à coller dans votre HTML.
Pointez n'importe quel formulaire HTML vers FormHalo : email + webhooks, protection anti-spam, upload de fichiers et analytics. Pas de serveur, pas de SDK, rien à réécrire.
<form> à la boîte mail en moins d'une minute. Un clic dans la console. Vous obtenez un endpoint unique et un snippet à coller dans votre HTML.
Modifiez l'attribut action du formulaire. Compatible HTML pur, Next.js, Astro, SvelteKit — tout ce qui sait soumettre.
Email, webhooks, stockage de fichiers R2, Slack, Discord, tableurs. Filtres, retries et un journal d'audit propre.
Honeypot, Turnstile et rate limiting par IP activés par défaut. Boîte mail au calme, zéro config.
Transférez à toute l'équipe, déclenchez des webhooks vers Slack, Discord, vos tableurs — avec retries et journal de livraison.
Acceptez des pièces jointes jusqu'à 25 Mo. Stockées dans votre bucket R2, servies via des URL signées.
Volume de soumissions, ratio succès/spam, temps de réponse — lus directement depuis Analytics Engine.
L'API répond dans l'Accept-Language de la requête. Anglais + russe déjà inclus ; d'autres arrivent.
Membres et rôles déjà modélisés dans le schéma. Venez avec votre studio, partagez un workspace.
REST + OpenAPI 3.1, générée depuis les mêmes schémas zod qui valident les requêtes. Des erreurs prévisibles en application/problem+json.
Clés d'idempotence sur chaque écriture.
Des soumissions mensuelles, pas des sièges. Montez en gamme quand votre trafic l'exige — jamais l'inverse.
Comparer toutes les fonctionnalités →
Non. FormHalo tourne sur Cloudflare Workers et accepte directement les POST de votre formulaire HTML. La seule chose à changer, c'est l'attribut action.
Honeypot, Cloudflare Turnstile et rate limiting sont activés par défaut. Vous pouvez désactiver chacun d'eux formulaire par formulaire si besoin.
À tout moment, en JSON ou CSV. Les fichiers R2 restent dans votre bucket ; nous ne gardons qu'un pointeur de métadonnées, rien de plus.
Oui — chiffré au repos, supprimé après la durée de rétention que vous choisissez. 30 jours par défaut.