Comparison

A self-hosted Resend alternative that sends and receives

Deployed into your own Cloudflare account with no VPS: send, receive, reply and forward over HTTP, get a signed webhook for every inbound message, and open the same mailboxes in webmail.

Facts checked

The short answer

Choose Resend if you want a hosted sending API with SDKs, a free tier of 3,000 emails a month and nothing to deploy. Resend counts received mail toward the sending quota and includes 10 domains and 3 receiving inboxes on Pro; MarkRelay receives for free and charges nothing per domain or mailbox. Choose MarkRelay when the API should live in your own Cloudflare account, on Workers with no server: it sends through Cloudflare Email Sending, receives through Email Routing into real mailboxes, replies and forwards over HTTP, signs every inbound webhook with HMAC-SHA256, and keeps every message in your own D1 and R2. Among the free self-hosted projects, EmailFlare and MailySend also run on Cloudflare (MailySend copies Resend's API); useSend and Plunk run on your own server with Docker.

Side by side

Where it runs

MarkRelay
Your Cloudflare account
Resend
Resend's cloud
EmailFlare
Cloudflare Workers or Docker
MailySend
Your Cloudflare account
useSend
Your server (Docker)
Plunk
Your server (Docker)

Server to maintain

MarkRelay
None
Resend
None
EmailFlare
None on Workers
MailySend
None
useSend
Yes
Plunk
Yes

Send over HTTP

MarkRelay
Yes
Resend
Yes
EmailFlare
Yes
MailySend
Yes
useSend
Yes
Plunk
Yes

Receive email

MarkRelay
Yes
Resend
Yes
EmailFlare
Separate inbox service
MailySend
Yes
useSend
On its roadmap
Plunk
Yes

Mailboxes people open in webmail

MarkRelay
Yes
Resend
—
EmailFlare
Team inbox
MailySend
Mailboxes in the dashboard
useSend
No
Plunk
—

Reply and forward endpoints

MarkRelay
Yes
Resend
—
EmailFlare
—
MailySend
—
useSend
—
Plunk
—

Signed webhooks for inbound mail

MarkRelay
HMAC-SHA256
Resend
Yes
EmailFlare
—
MailySend
HMAC-signed
useSend
—
Plunk
—

Keys limited to chosen mailboxes

MarkRelay
Yes
Resend
—
EmailFlare
—
MailySend
—
useSend
—
Plunk
—

Resend-compatible API

MarkRelay
No
Resend
—
EmailFlare
—
MailySend
Yes
useSend
—
Plunk
—

Broadcasts with unsubscribe

MarkRelay
Yes
Resend
Marketing plans, priced per contact
EmailFlare
Lists with one-click unsubscribe
MailySend
Yes
useSend
—
Plunk
Yes

Sends through

MarkRelay
Cloudflare Email Sending
Resend
Resend
EmailFlare
Cloudflare Email Sending
MailySend
Cloudflare, Amazon SES, Resend or SMTP
useSend
Amazon SES
Plunk
—

Needs

MarkRelay
Domain on Cloudflare DNS; Workers Paid to send
Resend
Any DNS host
EmailFlare
Domain on Cloudflare DNS
MailySend
Domain on Cloudflare DNS
useSend
A server and an AWS account
Plunk
A server

Price

MarkRelay
$99/yr or $249 once, plus Cloudflare
Resend
Free 3,000/mo, then from $20/mo
EmailFlare
Free
MailySend
Free
useSend
Free
Plunk
Free

From resend.com/pricing and each project's README on GitHub. “—” means the page or README does not mention it.

Which one fits you

Choose Resend if

  • You want a hosted API with SDKs and nothing to deploy.
  • You send mostly transactional mail and are not on Cloudflare.

Choose a free self-hosted project if

  • MailySend: you want Resend's exact API shape on Cloudflare.
  • EmailFlare: you mainly need a sending API with templates.
  • useSend or Plunk: you already run servers and use Amazon SES.

Choose MarkRelay if

  • Your app needs to receive mail as well as send it, with no server.
  • You send from many domains or receive into many inboxes, and that should not raise the bill.
  • People should read and answer the same mailboxes in webmail.
  • Each app or agent should get a key limited to its own mailboxes.
  • You want updates and email support rather than maintaining a fork.

What email costs

10,000 emails sent a month

Resend

$20Pro

MarkRelay

$15.70$8.25 license + $5 Workers Paid + $2.45 sending
You save per month
$4.3021% less

10,000 sent a month from 15 domains

Resend

$40Pro + domain add-on

MarkRelay

$15.70$8.25 license + $5 Workers Paid + $2.45 sending
You save per month
$24.3060% less

10,000 sent, 10 inboxes receiving mail

Resend

$27Pro + 7 extra inboxes

MarkRelay

$15.70$8.25 license + $5 Workers Paid + $2.45 sending
You save per month
$11.3041% less

20,000 sent and 40,000 received a month

Resend

$3560,000 emails counted

MarkRelay

$19.20$8.25 license + $5 Workers Paid + $5.95 sending
You save per month
$15.8045% less

40,000 sent and 20,000 received a month

Resend

$3560,000 emails counted

MarkRelay

$26.20$8.25 license + $5 Workers Paid + $12.95 sending
You save per month
$8.8025% less

10,000 sent, plus a weekly newsletter to 5,000 contacts

Resend

$60Pro + Marketing plan

MarkRelay

$23.28$8.25 license + $5 Workers Paid + $10.03 sending
You save per month
$36.7261% less

MarkRelay: the Annual license ($99/year) spread over 12 months, $8.25 a month whatever the volume, plus the Cloudflare bill: Workers Paid is $5/month with 3,000 sent emails included, then $0.35 per 1,000, and receiving is free. With Lifetime ($249 once), later years cost only the Cloudflare bill. A weekly issue is about 4.3 sends per contact a month. Resend: the cheapest transactional plan that covers the volume (Pro is $20/month for 50,000 emails, $35 for 100,000); received emails count toward that quota; Pro includes 10 domains (then $20/month per 100) and 3 receiving inboxes (then $1 per inbox a month); broadcasts are priced by contacts on a separate Marketing plan. MarkRelay charges nothing per domain or mailbox.

How mail flows through your Cloudflare account

Cloudflare receives and sends. MarkRelay is the mailbox in between, running as your own Worker.

Receive

  1. Senderwrites to support@yourdomain.com
  2. Email RoutingCloudflare, free on any plan
  3. MarkRelay Workerfiles it in the mailbox
  4. Your D1 + R2messages and attachments

Reply

  1. Webmail or APIa teammate, an app or an agent
  2. MarkRelay Workerchecks mailbox access
  3. Email SendingCloudflare, in Workers Paid
  4. Recipientsees support@yourdomain.com
mail.yourdomain.com
MarkRelay developer guide, API tab: get an API key, set the API URL and key, and make a first request in cURL
Each deployment's developer guide: its own API URL and a ready-to-run first request.
mail.yourdomain.com
MarkRelay webhooks page with two signed endpoints, each scoped to specific mailboxes
Signed webhooks, each limited to the mailboxes it should hear about.

Common questions

Can MarkRelay replace Resend for transactional email?

Yes. POST /emails/send takes from, to, cc, bcc, subject, one text, HTML or Markdown body, and attachments uploaded with POST /attachments, up to 50 recipients and 5 MiB per message, and sends through Cloudflare Email Sending from your own domain. There are no idempotency keys, so do not retry a send blindly.

Is MarkRelay cheaper than Resend?

For sending alone at 10,000 emails a month, MarkRelay comes to about $15.70 a month (the license spread over the year plus Cloudflare) against $20 on Resend Pro. The gap widens with received mail, which Resend counts toward its quota: sending 20,000 and receiving 40,000 a month is $35 on Resend and about $19.20 on MarkRelay. More than 10 domains or 3 receiving inboxes add to Resend's price, and newsletters need its separate Marketing plan.

Is the API compatible with Resend's SDK?

No. MarkRelay has its own small HTTP API, described by an OpenAPI 3.1 document on every deployment, so moving over means changing your send call. MailySend is the open-source project that mirrors Resend's API.

Can I receive email and get it as a webhook?

Yes. Mail to your domain arrives through Cloudflare Email Routing into a MarkRelay mailbox, and each new message triggers an email.received webhook signed with HMAC-SHA256, with the full message, headers and attachment list in the payload. You can also list, read, reply to and forward messages over the API.

Do I need a VPS or a server?

No. MarkRelay runs on Cloudflare Workers, D1, R2 and Queues in your own account and installs with a Deploy to Cloudflare button. There is no server, container or database to patch.

What does it need from Cloudflare?

A domain on Cloudflare DNS (the Free plan works; you keep your registrar), Email Routing to receive, which is free, and Workers Paid to send: $5/month with 3,000 emails included, then $0.35 per 1,000.

Can I send newsletters too?

Yes, with Broadcasts: up to 100,000 recipients each, one-click unsubscribe headers (RFC 8058) and an automatic suppression list. You are responsible for consent and for following CAN-SPAM, GDPR and Cloudflare's Email Service terms.

Keep reading

Own your email stack today

Buy MarkRelay once and run it in your Cloudflare account. MarkRelay adds no per-message or per-seat charge; Cloudflare usage and service limits remain separate.