Stop bad sign-ups before they sign up
Block from the dashboard — no code·Disposable emails, throwaway domains, risky countries·Custom gating only when you want it
No code to block. A little code to gate.
Blocking lives in the dashboard·Code only when you want custom limits
ts
1// You don't write code to block a sign-up.2// You build a rule in the dashboard:3//4// IF email domain ends in "@mailinator.com"5// OR sign-up risk > 0.76// THEN reject7//8// Your team can edit it without a deploy. We handle the rest.Keep the bad sign-ups out
Rules anyone on your team can edit·Disposable email blocking·Bot & abuse scores
Dashboard/
Sign-up rules
Stack rules top to bottom. First match wins.
01·Sign-up rules
Rules your support team can ship without you
- Build conditions on email, domain, sign-in method, or OAuth provider
- Allow, reject, restrict, or just log — for the rules you're still tuning
- First match wins, with a default you set
- Test a rule against a fake sign-up before you save it
Allow / Reject / Restrict / LogDashboard rulesRule tester
Sign-up form
Create your account
We'll verify your email before you continue.
Work email
you@company.com
Sign up
02·Disposable emails
Throwaway addresses, gone
- Match disposable domains with one regex rule
- Allow-list your customers' real domains so corp users sail through
- Self-host? Wire up an email-validation key for stricter checks
Domain rulesAllow-listReject
user.riskScores
Incoming sign-up
noah@acme.com
Just submitted the form
signUp.bot0.00
signUp.freeTrialAbuse0.00
const { signUp } = user.riskScores;
if (signUp.bot > 0.7) user.setRestricted();
03·Bot & abuse scores
A risk score on every sign-up
- Bot likelihood and free-trial-abuse likelihood on every user
- Restrict suspicious sign-ups — they get an account, but it's gated
- Lift the restriction once a human takes a look
riskScores.botFree-trial abuseRestrict + review
Ready to filter out the noise?
Drop in a single app — or use the whole platform. Either way, you ship faster.
Get started for free