scribase
Scribase Mail Studio

Self-hosted Resend: switch with one line

An open-source email API that speaks the Resend API. Keep the resend SDK, change the base URL, and send from our hosted service or your own servers. AGPL-3.0.

The one-line switch (resend SDK 6.x)ts
import { Resend } from 'resend';

// Before: const resend = new Resend(process.env.RESEND_API_KEY);
const resend = new Resend(process.env.SCRIBASE_MAIL_KEY, {
  baseUrl: 'https://mail-api.scribase.com',
});

await resend.emails.send({
  from: 'Acme <hello@acme.com>',
  to: ['you@example.com'],
  subject: 'It works',
  html: '<p>Sent through Scribase Mail Studio.</p>',
});
Or set one environment variableenv
# No code change: the resend SDK reads this variable
RESEND_BASE_URL=https://mail-api.scribase.com

Same request and response shapes for emails, batch, domains, API keys, contacts, audiences, broadcasts, templates and webhooks. See the migration guide for the full list, including what is not supported yet.

Watch

The switch in 30 seconds

Short walkthroughs of Mail Studio, published weekly.

Keep the Resend SDK, change the base URL

Scribase Mail Studio is a Resend-compatible email API: keep the Resend SDK and change one line. Made with Menivor.

Transcript

Moving off Resend usually means rewriting your email code. Not here. Scribase Mail speaks the Resend API, so the official Node, Python and Go SDKs work as they are. Point the base URL at mail-api dot scribase dot com and send. Open source, with a free plan. Try it at mail dot scribase dot com.

Made with Menivor
What you get

The parts of an email API you actually use

Resend-compatible API

Emails, batch, scheduled sends, attachments, tags, idempotency keys, domains, API keys, contacts, audiences, segments, topics, broadcasts and templates, in the same request and response shapes.

Signed webhooks

email.sent, delivered, bounced, complained, opened, clicked, received and more, signed in the Svix format, so resend.webhooks.verify() and the svix library verify them unchanged.

Inbound email

Point an MX record at the inbound server and received mail shows up under /emails/received with attachments and an email.received webhook.

Open and click tracking

First-party tracking pixel and signed redirect links, switched per domain with open_tracking and click_tracking.

Agent tools

An MCP server and a CLI ship in the repository (packages/mcp-server, packages/cli), so a coding agent can send, list and manage domains.

Warm-up and abuse controls

New senders start on warm-up caps, reputation auto-pause stops a bad sender early, and content screening plus a review queue protect the shared sending reputation.

Side by side

How it compares

From each project's public README, docs and pricing page, checked October 2026. Not affiliated with any of them.

Scribase Mail StudioResenduseSendPostal
Source codeAGPL-3.0Closed (SDKs are MIT)AGPL-3.0MIT
Self-hostYesNoYesYes
Hosted planYesYesYesNo
Works with the resend SDK (baseUrl)YesYesNoNo
Sending pathSMTP relayManagedAWS SESOwn MTA and IPs
Inbound emailYesYesNoYes
Svix-format signed webhooksYesYesNoNo
Hosted price for 50,000 emails a month$20$20See their pricingYour servers

Scribase Mail Studio is a fork of useSend and keeps its AGPL-3.0 license. Resend is a trademark of its owner.

Hosted pricing

Same price points, open code

Billed monthly. Paid plans have no monthly hard stop: sends above the quota are billed per 1,000. Warm-up caps apply to every new sender.

Free

$0 / month

For trying the API and low-volume projects.

  • 3,000 emails per month
  • 100 emails per day
  • 1 domain
  • 1 contact book
  • 1 team member
  • 1 webhook
Create a free account

Pro

Most teams

$20 / month

For products sending to real customers.

  • 50,000 emails per month
  • No daily plan cap
  • 10 domains
  • Contact books, team members and webhooks without a plan limit
  • $0.90 per 1,000 extra emails
Choose Pro

Scale

$90 / month

For teams with high volume and many domains.

  • 100,000 emails per month
  • No daily plan cap
  • 1,000 domains
  • Contact books, team members and webhooks without a plan limit
  • $0.90 per 1,000 extra emails
Choose Scale
Self-host

Run it on your own servers

One repository: the dashboard, the Resend-compatible API, the inbound mail server, the MCP server and the CLI. Docker image and compose file included. AGPL-3.0, so the code you run stays inspectable.

Get the sourcesh
git clone https://github.com/caelum0x/scribase-mail-studio
cd scribase-mail-studio
# follow the self-host section of the README
Questions

Before you switch

Do I have to change my code?

Usually one line. The resend Node SDK accepts a baseUrl option and also reads the RESEND_BASE_URL environment variable, so pointing it at https://mail-api.scribase.com with a Scribase Mail key is enough for the endpoints we serve.

Is it affiliated with Resend?

No. Scribase Mail Studio is an independent project that implements the same public REST API shapes so existing code and SDKs keep working.

What is it built on?

It is a fork of useSend (AGPL-3.0) with a Resend-compatible API layer, Svix-format webhooks, inbound email, an MCP server, a CLI, and warm-up and abuse controls added. The full source is public.

Can I self-host it?

Yes. The repository has a Docker image, a compose file and a self-host guide. Under AGPL-3.0 you can run and modify it; if you offer a modified version to users over a network, you share its source.

Why can a new account not send to anyone right away?

New senders start on warm-up caps and verified domains, so one bad sender cannot hurt delivery for everyone else. Limits rise as your sending stays clean.