Contribute

This project is built entirely from community pull requests. Adding or correcting a domain takes a few minutes.

How to contribute

  1. Fork the repository on GitHub.
  2. Create a branch for your change.
  3. Add domains to the relevant src/<category>/domains.txt.
  4. Run npm run validate locally.
  5. Open a Pull Request.
  6. Automated checks run (syntax, duplicates, build).
  7. A maintainer reviews your change.
  8. Your PR is merged.
  9. Lists and the site rebuild and deploy automatically.

Submit a domain

Pick a category to edit its source file directly on GitHub, then open a pull request. The build system handles sorting, deduplication and chunking.

Contribution rules

  • One domain per line — e.g. example.com, sub.example.com.
  • Lowercase, trimmed, no trailing dot (normalization is enforced).
  • No URLs, paths, query strings, ports, wildcards or underscores.
  • No IP addresses or localhost.
  • No duplicates within a category (duplicates are rejected).
  • UTF-8, LF line endings, final newline.
  • Choose an appropriate category; maintainers review every submission.

Automated validation

Every pull request runs the same checks before it can be merged:

  • Syntax — each domain is validated (labels, length, TLD).
  • Normalization — non-canonical entries are flagged with a fix hint.
  • Duplicate detection — within a category (error) and across categories (warning).
  • Build — the full site and lists are generated as a test.
  • Deployment — on merge to main, everything rebuilds and deploys automatically.