Step 01
Email Routing intake
Inbound messages arrive through Cloudflare Email Routing into the Worker email handler.
Create unlimited email addresses with attachment support for you/your team, access via dashboard or API. Set TTL, allowed senders, auto-cleanup, and more.
Tech Stack
scaffolded with better-auth-cloudflare
Spinupmail gives teams controlled inboxes, isolated workspaces, and automation-ready APIs for testing, verification, and internal operations.
Create addresses with TTL, domain allowlists, and configurable inbox cleanup behavior.
Role-based organizations, and shared inbox visibility keep projects isolated by default.
Automate everything with API keys (`spin_...`) plus required `X-Org-Id` scoping.
Route inbound email events to external notification channels with organization-scoped subscriptions. Events are dispatched asynchronously via Cloudflare Queues with retry controls.
Track org-level email volume, inbox growth, and recent address activity from the dashboard.
Run API, intake, storage, and frontend on Cloudflare services.
Guardrails for identity, abuse prevention, and access control are available out of the box.
Requests are validated in sequence: intake, policy checks, parsing, storage, and organization-scoped reads.
Step 01
Inbound messages arrive through Cloudflare Email Routing into the Worker email handler.
Step 02
Disallowed or expired sender-domain traffic is rejected before storage.
Step 03
Bodies are parsed, HTML is sanitized, and oversized data is capped to protect D1 writes.
Step 04
Metadata lands in D1. Attachments and optional raw MIME go to scoped R2 object paths.
Step 05
UI/API reads require organization scope, including API key usage with X-Org-Id.
Address records, message metadata, sanitized body text/HTML, and attachment metadata for fast organization-scoped queries.
Attachments are persisted per org/address/email path. Raw MIME can be enabled for debugging and downloaded through authenticated routes.
The deployment flow is explicit: provision Cloudflare resources, configure bindings, deploy Worker + Pages, then route API traffic.
Clone the repository and install dependencies from the project root with pnpm.
Create D1, KV, and R2 resources, then configure Worker bindings and secrets in wrangler.toml.
Deploy the Worker and Pages app separately, then route /api/* to the Worker on your domain.
Clone the repo and install workspace dependencies.
Use the API for CI, QA harnesses, and scripted workflows with the same organization-scoped endpoints shown in the dashboard.
Create an email address with TTL and sender controls.
Use the setup guide to deploy Worker + Pages on Cloudflare, then create addresses, wire integrations, and automate inbox workflows.