{"id":51646478,"url":"https://github.com/zerodrop-dev/zerodrop-worker","last_synced_at":"2026-07-13T23:02:41.160Z","repository":{"id":364412652,"uuid":"1255294756","full_name":"zerodrop-dev/zerodrop-worker","owner":"zerodrop-dev","description":"Open-source edge infrastructure for email verification — spam filtering via Llama 3.1, OTP and magic link auto-extraction. Self-hostable backend for ZeroDrop.","archived":false,"fork":false,"pushed_at":"2026-06-23T19:44:19.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-23T21:23:02.484Z","etag":null,"topics":["ci-cd","cloudflare-workers","developer-tools","edge-computing","email-testing","email-verification","llama","opensource","otp-extraction","playwright","self-hosted","upstash-redis"],"latest_commit_sha":null,"homepage":"https://zerodrop.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zerodrop-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-31T16:48:05.000Z","updated_at":"2026-06-23T19:46:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zerodrop-dev/zerodrop-worker","commit_stats":null,"previous_names":["zerodrop-dev/zerodrop-worker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zerodrop-dev/zerodrop-worker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerodrop-dev%2Fzerodrop-worker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerodrop-dev%2Fzerodrop-worker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerodrop-dev%2Fzerodrop-worker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerodrop-dev%2Fzerodrop-worker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerodrop-dev","download_url":"https://codeload.github.com/zerodrop-dev/zerodrop-worker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerodrop-dev%2Fzerodrop-worker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35439213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","cloudflare-workers","developer-tools","edge-computing","email-testing","email-verification","llama","opensource","otp-extraction","playwright","self-hosted","upstash-redis"],"created_at":"2026-07-13T23:02:40.482Z","updated_at":"2026-07-13T23:02:41.150Z","avatar_url":"https://github.com/zerodrop-dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zerodrop-worker\n\nEdge infrastructure for email verification — catches inbound emails, filters spam with Llama 3.1, and auto-extracts OTPs and magic links before storing in Redis.\n\nThis is the open-source backend that powers [zerodrop.dev](https://zerodrop.dev). Runs entirely on Cloudflare's edge — no server, no SMTP, no maintenance.\n\n```\nInbound email → Cloudflare Email Routing\n                      ↓\n              zerodrop-worker (this repo)\n                      ↓\n         Cloudflare Workers AI (Llama 3.1 spam filter)\n                      ↓ (LEGITIMATE only)\n              OTP + magic link extraction\n                      ↓\n              Upstash Redis · TTL 1800s\n```\n\n**[Documentation](https://docs.zerodrop.dev)** · [Self-Hosting Guide](https://docs.zerodrop.dev/self-hosting) · [SECURITY.md](SECURITY.md)\n\n---\n\n## What it does\n\n1. **Receives email** via Cloudflare Email Routing — every email sent to `*@zerodrop-sandbox.online` triggers this worker\n2. **Parses the MIME payload** — extracts from, to, subject, message-id, and raw body\n3. **Runs Llama 3.1 spam filter** — classifies the email as SPAM or LEGITIMATE using Cloudflare Workers AI\n4. **Drops spam silently** — spam never reaches Redis\n5. **Auto-extracts OTPs and magic links** — runs regex at the edge so your test suite gets `email.otp` and `email.magicLink` directly\n6. **Stores legitimate emails** in Upstash Redis — key pattern `inbox:{name}`, TTL 1800s (30 min)\n\n---\n\n## Environment variables\n\nAll secrets are stored as Cloudflare Worker environment variables — never in code or git history.\n\n| Variable | Description |\n|----------|-------------|\n| `UPSTASH_REDIS_REST_URL` | Upstash Redis REST endpoint |\n| `UPSTASH_REDIS_REST_TOKEN` | Upstash Redis REST token |\n\nThe `AI` binding is configured via `wrangler.jsonc` and uses Cloudflare's built-in Workers AI — no external API key needed.\n\n---\n\n## Deploying your own instance\n\n```bash\nnpm install\nnpx wrangler deploy\n```\n\nSet your environment variables in the Cloudflare dashboard or via:\n\n```bash\nnpx wrangler secret put UPSTASH_REDIS_REST_URL\nnpx wrangler secret put UPSTASH_REDIS_REST_TOKEN\n```\n\n---\n\n## Security\n\n- No credentials are stored in code or git history\n- All secrets are Cloudflare Worker environment variables\n- Spam is dropped at the edge before hitting the database\n- Inboxes auto-delete after 30 minutes via Redis TTL\n- Worker source is fully auditable here\n\nFor supply chain security when using the GitHub Action, pin to a specific commit SHA:\n\n```yaml\n# Instead of:\nuses: zerodrop-dev/create-inbox@v1\n# Pin to a specific commit:\nuses: zerodrop-dev/create-inbox@4eb0c06  # v1.0.0\n```\n\n---\n\n## Related repos\n\n- [zerodrop-dev/zerodrop-sdk](https://github.com/zerodrop-dev/zerodrop-sdk) — TypeScript SDK\n- [zerodrop-dev/create-inbox](https://github.com/zerodrop-dev/create-inbox) — GitHub Action\n- [zerodrop-dev/zerodrop-playwright-example](https://github.com/zerodrop-dev/zerodrop-playwright-example) — Working Playwright example\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerodrop-dev%2Fzerodrop-worker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerodrop-dev%2Fzerodrop-worker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerodrop-dev%2Fzerodrop-worker/lists"}