DEV Community

Roco
Roco

Posted on

We replaced reCAPTCHA and haven't looked back

Why we ditched reCAPTCHA

We had reCAPTCHA on our signup form. Standard stuff.

Then we looked at the analytics. 15% of users who started the signup flow dropped off at the CAPTCHA step. Fifteen percent.

Some of them probably were bots. But most? Regular people who didn't want to click on traffic lights.

We get it. We hate those things too.

The search for alternatives

We looked at:

  • hCaptcha - Same problem, different pictures
  • Invisible reCAPTCHA - Better, but still shows challenges sometimes
  • Turnstile - Decent, but we wanted more control

None of them gave us what we wanted: verification that's truly invisible to legitimate users.

What we built

GATE. Human verification without puzzles.

It works by combining three things:

Behavioral analysis - How does the user interact with the page? Mouse movements, scroll patterns, keyboard timing. Humans are messy. Bots are perfect.

Proof of work - The browser solves a small computational puzzle. Trivial for a single user. Expensive at scale for bot operators.

Environment detection - Is this a real browser? Are dev tools open? Is it running headless?

All of this happens in the background. The user fills out the form normally. By the time they click submit, we already have a verdict.

The score

Each visitor gets a score from 0-100. You decide the threshold.

  • 90+ is almost certainly human
  • 70-89 is probably human
  • 50-69 is suspicious
  • Below 50 is likely automated

We set our threshold at 60. Aggressive, but our use case tolerates some false positives.

Implementation

<script src="https://gate.sekyuriti.build/v1/gate.js" data-site-key="your-key"></script>
Enter fullscreen mode Exit fullscreen mode

On form submit:

const token = await gate.getToken();
// Send token to your backend for verification
Enter fullscreen mode Exit fullscreen mode

Backend:

const result = await gate.verify(token, secretKey);
if (!result.valid) {
  // Handle bot
}
Enter fullscreen mode Exit fullscreen mode

Results

After switching:

  • Signup completion: up 12%
  • Bot signups: down 94%
  • Support tickets about CAPTCHAs: zero

Honest downsides

  • It's not free at scale (but neither is reCAPTCHA Enterprise)
  • Very old browsers might have issues
  • Some privacy-focused users with heavy blocking might get low scores

Try it

Free tier available. No credit card required.

sekyuriti.build/modules/gate

Top comments (0)