DEV Community

Kyle
Kyle

Posted on

I built burner-bouncer: a zero-dependency disposable email detector for JavaScript and Python

Ever had users sign up with test@mailinator.com or fake@guerrillamail.com? Disposable email addresses are a headache for any app that relies on real user contact.

I built burner-bouncer to solve this — a zero-dependency library that detects disposable/burner email domains instantly, with no API calls and no external requests.

Features

  • 🚫 629 real disposable domains blocked out of the box
  • ⚡ Zero runtime dependencies
  • 🟦 TypeScript-first (ESM + CJS)
  • 🐍 Python 3.8+ support
  • 🔁 Identical API in both languages

## JavaScript / TypeScript

  npm install burner-bouncer
Enter fullscreen mode Exit fullscreen mode
  import { isDisposable, check } from 'burner-bouncer';

  isDisposable('test@mailinator.com');  // true
  isDisposable('user@gmail.com');       // false

  check('test@mailinator.com');
  // { email: 'test@mailinator.com', domain: 'mailinator.com', isDisposable: true, reason: 'blocklist' }
Enter fullscreen mode Exit fullscreen mode

## Python

  pip install burner-bouncer
Enter fullscreen mode Exit fullscreen mode
  from burner_bouncer import is_disposable, check

  is_disposable('test@mailinator.com')  # True
  is_disposable('user@gmail.com')       # False

  result = check('test@mailinator.com')
  print(result.to_dict())
  # {'email': 'test@mailinator.com', 'domain': 'mailinator.com', 'is_disposable': True, 'reason': 'blocklist'}
Enter fullscreen mode Exit fullscreen mode

How it works

The blocklist is a JSON file of 629 known disposable domains bundled at install time. No network requests, no API keys, no rate limits — just a fast Set lookup.

Links

PRs to add more domains are always welcome!

Top comments (0)