Skip to content

Self-hosted alternatives to SendGrid

Twilio SendGrid is a hosted email delivery service with a REST API and SMTP relay for transactional and marketing email. 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 SendGrid 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

SendGrid features, app by app

FeatureEmailFlare
Send email through a REST APIYes
SMTP relayNo
Sending domain authenticationYes
API keys with limited permissionsYes
Dynamic templatesYes
Email activity and statisticsYes
Event webhook for delivery eventsNo
Suppression of bounces, spam reports and unsubscribesPartly

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

What a SendGrid user would miss
There is no SMTP relay or outbound event webhook, and the send API has no attachments, CC or BCC.
What it adds
Keys can be limited to chosen domains, logs and templates live in your own D1 database, and the same project adds a team inbox with contact lists and outbound sequences.
  • Yes Send email through a REST API. POST /v1/send with an API key, an Idempotency-Key header and rate limiting.
  • No SMTP relay. No SMTP service in the source or docs.
  • Yes Sending domain authentication. Domains added through the Cloudflare API with a DKIM selector, return-path domain and verified flag.
  • Yes API keys with limited permissions. API keys with global, domain or multi-domain scope and test or live type.
  • Yes Dynamic templates. Handlebars variables in custom templates and 50 built-in React Email layouts.
  • Yes Email activity and statistics. Send logs page and stats routes.
  • No Event webhook for delivery events. No outbound webhooks, the webhook route in the Node server only receives bounce reports.
  • Partly Suppression of bounces, spam reports and unsubscribes. Unsubscribes suppress recipients, bounce and complaint parsing is in the Worker email handler but needs an Email Routing rule for the return-path address.

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