SignupDesk's event registration bot protection ships on every form by default. A hidden honeypot silently drops bot submissions. Per-IP and per-event rate limiting kills mass-fill attacks. Six heuristic checks catch disposable email domains, repeating mobile patterns, IP bursts, gibberish names and duplicate submissions. Suspicious registrations get flagged for admin review, never rejected. Real attendees never hit an hCaptcha friction wall.
No hCaptcha friction, no Cloudflare interstitial. Real attendees never notice.
website is rendered in the form but positioned off-screen with tabindex="-1". Real users never see it. Bots that submit every input fill it. If filled, we silently drop the submission.is_suspicious = true + a list of reasons. Admin filters "Suspicious" on the registrations page and reviews. Real attendees who tripped one heuristic never get an angry error message.More can be added. All fire independently โ one signal is a hint, two signals is a probable bad actor.
honeypot_trippeddisposable_emailrepeating_mobilesequence_mobileduplicate_email_x3ip_burstgibberish_nameThe obvious answer to "we're getting spam" is to bolt on hCaptcha, Cloudflare Turnstile, or a "please prove you're human" popup. And it works โ spam drops. But a percentage of real attendees fail the challenge, close the tab, and never register. On a free meetup that percentage might be 2%. On a paid โน10,000 conference, that's real revenue walking out.
Then there's the CAPTCHA fatigue tax: every extra step in the form kills conversion. Baymard's checkout research is unambiguous โ every field, every popup, every "extra step" bleeds paying customers.
So we went the other direction. Invisible defences โ honeypot, rate limit, heuristic scoring โ that real attendees never see. When we're 99% sure something is a bot (honeypot tripped, rate limit exceeded), we silently drop it. When we're uncertain (disposable email, one gibberish signal), we save the registration and flag it for admin. The organiser opens the registrations list, filters "Suspicious", reviews the 3 flagged rows, deletes the fakes, welcomes the real attendees.
Nothing turns a real attendee into an angry email faster than "your registration was rejected: suspicious activity." So we don't reject. We flag. Admin decides.