Get started

Support matrix

Supported vs Available transports and runtimes for production use.

Not every exported transport is part of the 1.x production promise. Supported paths are documented, tested, and operable (verify, retry/fallback, and webhooks where listed). Available paths ship and have unit coverage but are not the support bar.

The one rule

Build production apps on Supported transports. Treat Available exports as optional extras you can adopt knowing the promise is thinner.

Supported (v1 promise)

ChannelSupported transportsOperability
EmailSMTP, Resend, SES, SendGrid, PostmarkAttachments / HTML / text, verify, retry / fallback, webhooks for the HTTP majors
SMSTwilio SMS, UnifonicWebhooks for Twilio and Unifonic
WhatsAppWhatsApp CloudSignature verify + delivery parse
PushWeb Push, FCMOption union: subscription (Web Push) or token (FCM)
RuntimesNode ≥18, Bun, Deno, Cloudflare WorkersAdapters and smoke scripts

FCM uses the current Firebase HTTP API (service-account JWT, no Google SDK). That is baseline push support, not a special feature tier.

Available (exported, not the v1 bar)

ChannelAvailable examples
EmailMailgun, Brevo, MailerSend, Plunk, SparkPost, Mailtrap, Mailpit (dev), Loops, SNDR, Taqnyat Mail, Cloudflare Email, …
SMSTaqnyat SMS, Msegat
WhatsAppTaqnyat WhatsApp
DecoratorsWeightedFallbackTransport (advanced); preview / idempotency remain email-only
Local emailMailpit (SMTP catcher), Preview (disk)

Available transports stay in the package. They are promoted to Supported when docs, operability, and smoke coverage meet the bar above.

Troubleshooting

Learn more

Next

On this page