Skip to content

Self-hosted alternatives to Resend

Resend is a hosted email API for developers that sends transactional and marketing email through a REST API, SDKs and SMTP. One listed app does its main job and runs in your own Cloudflare account.

Each answer comes from the app’s README and source code, compared with the features Resend describes on its own site.

  • EmailFlare Inbox landing page with a mockup of the conversation list and a contact thread

    Transactional email API and shared team inbox built on Cloudflare Email Sending, Email Routing and D1

    Deploy
    CLI
    License
    MIT
    GitHub stars
    252 stars
    Last commit

Resend features, app by app

FeatureEmailFlare
Send email through a REST APIYes
Send through SMTPNo
Verify sending domainsYes
Email templatesYes
Send logs and analyticsYes
Webhooks for delivery eventsNo
Suppression of bounced and complained addressesPartly
Attachments, CC and BCCNo

Transactional email API and shared team inbox built on Cloudflare Email Sending, Email Routing and D1

What a Resend user would miss
The send API has no attachments, CC, BCC, tags or scheduled sends, there is no SMTP relay or outbound webhook for delivery events, and bounce handling needs an Email Routing rule for the return-path address.
What it adds
API keys can be limited to chosen sending domains, keys come in test and live types, and the same project includes a shared team inbox that receives mail through Email Routing.
  • Yes Send email through a REST API. POST /v1/send with an API key, an Idempotency-Key header and rate limiting.
  • No Send through SMTP. No SMTP service in the source or docs.
  • Yes Verify sending domains. Domains added through the Cloudflare API with a DKIM selector, return-path domain and verified flag.
  • Yes Email templates. 50 built-in React Email layouts and custom Handlebars templates, referenced by templateSlug.
  • Yes Send logs and analytics. Send logs page and stats routes, with statuses sent, failed, bounced and complained.
  • No Webhooks for delivery events. No outbound webhooks, the webhook route in the Node server only receives bounce reports.
  • Partly Suppression of bounced and complained addresses. Suppression list filled by unsubscribes, bounce and complaint parsing is in the Worker email handler but needs an Email Routing rule for the return-path address.
  • No Attachments, CC and BCC. The send schema has no attachment, cc or bcc fields.

Sources:github.com/0xdps/emailflare#emailflare-api--email-sending-apigithub.com/0xdps/emailflare/blob/trunk/packages/email-core/src/index.tsgithub.com/0xdps/emailflare/blob/trunk/docs/TEMPLATES.mdgithub.com/0xdps/emailflare/blob/trunk/services/email-worker/src/index.tsgithub.com/0xdps/emailflare/blob/trunk/services/email-worker/src/email-handler.tsemailflare.devworkersnative.directory/api/apps/emailflare