← boes.dev
FormRelay logo

FormRelay

Laravel + Filament

Visit formrelay.app

FormRelay is a form backend: point any HTML form at an endpoint and get storage, spam filtering and notifications. The contact form on this very site runs through it. Here is what happens to a submission once it arrives.

A form, anywherePOST /api/v1/formAppthe gauntletPostgressubmission storedRedisjobs queuedHorizonup to 10 workersNotificationsemail, Slack, webhooks, ...

Hover or tab through the boxes to see what each part does.

6 containers

Stack

up to 10

Queue workers

6 signals

Spam scorers

8 types

Notification channels

The gauntlet

Before a submission is stored it runs a middleware pipeline: blocked-IP check, per-form CORS, honeypot, bot protection (Turnstile or reCAPTCHA, per form), then rate limiting. Only what survives gets validated against the form's schema and persisted.

The quiet workers

Storage is synchronous; everything else is not. Spam scoring (six independent signals, from link density to submission velocity), geo lookups and delivery retries all happen on Horizon-managed queues, so the submitting form gets its response fast regardless of what happens next.

The fan-out

Every form chooses where submissions go: email, webhooks, Telegram, Slack, Discord, Zapier, Make or n8n, plus optional autoresponders and daily digest mode. One POST in, up to eight kinds of messages out.

Always on

A Reverb websocket server powers the live support chat, and a scheduler runs the housekeeping: retention purges, digest sends, anomaly checks and data exports, all on their own daily and five-minute loops.