From 87% to 99.4% inbox placement in 7 days
How Raycast stopped losing developer emails and reclaimed their sending reputation
Raycast serves 200,000+ developers across 150 countries. When their email infrastructure started failing silently, they needed a fix that wouldn't require a week of downtime. They got one in 45 minutes.
Raycast is how developers run their Mac. Millions of commands, thousands of extensions, one launcher. Behind the product is a 200,000-person developer community that communicates through email — password resets, workspace invites, extension update notifications, billing receipts. Email isn't a nice-to-have. It's load-bearing infrastructure.
The challenge
Silent failures at scale
Their previous provider had no transparent delivery reporting. Raycast knew their inbox placement was poor only because support tickets started climbing — "I never got the invite," "where's my password reset?" — not because any dashboard told them. By the time they diagnosed the issue, inbox placement had fallen to 87%.
A shared IP reputation they couldn't control
On a shared IP pool, your reputation is your neighbors' reputation. As their volume grew, they were co-tenanted with senders who didn't maintain list hygiene. Major inbox providers started throttling traffic from those IPs. Raycast had no recourse — they couldn't opt out, and the provider's support cycle was measured in weeks.
Engineering overhead on every send
Every new email type required reading provider-specific SDK docs, testing in a separate sandbox, and manually configuring DKIM keys through a UI that hadn't been updated in years. Developers who joined to build product features were spending afternoons debugging email pipelines.
The solution
Raycast switched to Sendbound over a single sprint. They pointed MX records, configured DKIM and SPF through the API (not a UI), and migrated their four highest-volume flows — password resets, workspace invites, extension alerts, and billing — in a single afternoon. The API was familiar from day one: one endpoint, one auth header, typed request bodies. Their first send hit inboxes in under 400ms. Within 48 hours, inbox placement was at 96%. By day seven, it had settled at 99.4%.
import Sendbound from '@sendbound/sdk';
const sb = new Sendbound({ apiKey: process.env.SENDBOUND_API_KEY });
await sb.emails.send({
from: 'Raycast <team@raycast.com>',
to: invite.recipientEmail,
subject: `${invite.senderName} invited you to ${invite.workspaceName}`,
template: 'workspace-invite-v3',
variables: {
sender_name: invite.senderName,
workspace_name: invite.workspaceName,
accept_url: invite.acceptUrl,
expires_at: invite.expiresAt,
},
});"Our engineers used to dread email tasks. Now they ask for them. Sendbound's API is genuinely a pleasure to work with — and the deliverability difference was immediate. We went from firefighting to forgetting about it, which is exactly what infrastructure should feel like."
The impact
The support ticket category "I never received the email" effectively disappeared from Raycast's queue within two weeks of migration. Their engineering team now ships new email types in the time it previously took to read the documentation for their old provider. Inbox placement has held above 99% for fourteen consecutive months.
Results at a glance
- Inbox placement moved from 87% to 99.4% in 7 days
- API response time improved 12× — from ~3 s average to under 250 ms
- Full migration of 4 email flows completed in 45 minutes with zero downtime
- "I never got the email" support tickets dropped to effectively zero
- New email types now ship in hours, not days
- Dedicated IP reputation owned entirely by Raycast, not shared
Ready to see these results?
Start free — first 3,000 emails per month, always free.
