Many mailboxes.
Many workers. Many IPs.
Not a glorified SMTP relay. The control plane decides what to send. Workers spread sends across machines and IPs so no single point becomes a reputation liability.
The engine, end to end.
Every component, every link. The backend never talks to a mailbox provider directly. Workers never read from Postgres. Each plane has one job and stays in its lane.
318ms from queue to 200 OK.
One message, every handoff. Latencies here are illustrative for a Gmail mailbox connected with Google sign-in, on a warm worker; one connected with an app password takes the SMTP path at the same points. Real traces are visible in the per-mailbox event view.
Volume scales by adding mailboxes.
Not by cranking a few. Each scenario keeps every mailbox at the default cap. When one worker fills with mailboxes, the next worker takes the next batch.
A single ben@acme.com runs on one worker. Default 100/day cap. Plenty of headroom on the worker for warmup partners.
Right at the per-worker concentration warning. One worker carries all 10 mailboxes; healthy as long as no mailbox drifts.
Spread across 5 workers so each holds ~10. Concentration warnings never fire. Adding mailboxes triggers a new worker, not a denser one.
Gmail in three steps. Native Outlook. SMTP for the rest.
A guided setup over smtp.gmail.com and imap.gmail.com, no Google app review in the way. Threaded replies preserved via In-Reply-To and References. Postmaster Tools surfaced where the domain is enrolled.
Graph API for send with shared-mailbox support. IMAP and EWS for sync. Tenant-scoped admin consent.
Bring your own server. TLS, STARTTLS, app passwords, and OAuth where the provider supports it. iCloud and Zoho work first-class.
Four engine questions.
Mailboxes are pinned to a worker on first connect and stay there for stability. The control plane can rebalance live by moving the mailbox to a different worker without dropping campaigns or warmup.
Worker state is disposable. A replacement worker reads pending commands from the same Kafka topic on boot and resumes. No mailbox is stuck waiting on a single host.
No. A mailbox lives on one worker with one IP at a time so receiver reputation can stabilise. Migration changes the IP intentionally and is logged.
The per-mailbox 600-second gap is enforced server-side. Even if a campaign queues 100 sends at once, dispatch is rate-limited to the gap, not the queue size.
Connect a mailbox. Send your first campaign today.
Connect Gmail with an app password or Outlook with one sign-in. Worker assignment is automatic.




