Scribase Mail

Self-hostable, AGPL, Resend-compatible email API. MCP server sends and manages email: compose/send, templates, contacts, domains.

Hosted MCP Server

npx add-mcp 'https://mail-api.scribase.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Scribase Mail Studio

Scribase Mail Studio

Self-hosted Resend: switch with one line.
A Resend-compatible email API and dashboard you can run yourself or use hosted.

GitHub stars License AGPL-3.0 Latest release Docker image Works with the resend SDK

Website · Migrate from Resend · Self-hosting · Docs · Hosted (free tier)

The official resend SDK sending through Scribase Mail Studio, then the email in the dashboard

Switch with one line

Keep the official resend SDK and your code. Point it at Scribase Mail Studio:

import { Resend } from "resend";

const resend = new Resend(process.env.RESEND_API_KEY, {
  baseUrl: "https://mail-api.scribase.com", // or your own instance
});

await resend.emails.send({
  from: "Acme <hello@acme.com>",
  to: ["you@example.com"],
  subject: "It works",
  html: "<p>Sent through Scribase Mail Studio.</p>",
});

No code change at all: set RESEND_BASE_URL=https://mail-api.scribase.com (the SDK reads it). Webhooks are signed in the Svix format, so resend.webhooks.verify() keeps working. Full guide: Migrate from Resend.

Self-host in one command

Requires Docker with Compose v2.

git clone https://github.com/caelum0x/scribase-mail-studio && cd scribase-mail-studio && ./scripts/selfhost.sh

This generates secrets into .env, starts the app, Postgres, Redis and a local Mailpit inbox, and prints the URLs:

WhatURL
Dashboardhttp://localhost:3000
Resend-compatible API (baseUrl)http://localhost:3000/api/resend
Local inbox (sign-in codes and test mail)http://localhost:8025

Sign in with any address (the code lands in Mailpit), add a domain such as acme.test (reserved names verify without DNS), create an API key and send with the resend SDK. To send real mail, set SMTP_HOST, SMTP_PORT, SMTP_USER and SMTP_PASS in .env to any SMTP relay (your own Postfix, Oracle Cloud Email Delivery, or any provider with SMTP), clear COMPOSE_PROFILES, and run ./scripts/selfhost.sh again. DKIM is signed by the app and the dashboard shows the DNS records to add. Production notes, TLS and backups: docs/SELF-HOSTING.md.

Why

  • Resend API shape. Emails (single, batch, scheduled, attachments, tags, idempotency keys), domains, API keys, contacts, audiences, segments, topics, broadcasts, templates, webhooks, suppressions and logs.
  • Your infrastructure, your data. Postgres and Redis you control, AGPL source you can audit, and no usage bill when you self-host.
  • Inbound email. Point MX at the bundled inbound server; messages show up under /emails/received and fire email.received.
  • Deliverability controls built in. Warm-up caps for new senders, reputation auto-pause, content screening, a review queue, suppression lists, open and click tracking.
  • Agent-ready. An MCP server (packages/mcp-server) and a CLI (packages/cli) for coding agents.
  • A real dashboard. Campaign editor, contact books, double opt-in, one-click unsubscribe, team roles, 2FA and an audit log.

Compared

Scribase Mail StudioResenduseSendPostal
Source codeAGPL-3.0Closed (SDKs MIT)AGPL-3.0MIT
Self-hostYesNoYesYes
Hosted planYesYesYesNo
Works with the resend SDK via baseUrlYesYesNoNo
Sending pathAny SMTP relayManagedAWS SESOwn MTA and IPs
Inbound emailYesYesNoYes
Svix-format signed webhooksYesYesNoNo
Hosted price for 50,000 emails/month$20$20See their pricingn/a

Facts from each project's public README and pricing page as of October 2026. Corrections welcome in an issue. Not affiliated with Resend.

Not supported yet, kept honest: automations and custom events, the Inboxes API, OAuth apps, domain claim, and enforced TLS per domain (delivery uses opportunistic TLS). Open a compatibility issue for anything else that differs.

Hosted

Prefer not to run it? mail.scribase.com is the same code, operated by us: Free (3,000 emails/month), Pro $20/month (50,000 emails), Scale $90/month (100,000 emails), $0.90 per extra 1,000. New teams from a company domain are approved automatically; sending starts on warm-up limits. Details on scribase.com/mail.

Local development

pnpm install
cp .env.example .env
pnpm dx:up            # Postgres + Redis in Docker
pnpm db:migrate-dev
pnpm dev              # http://localhost:3000
pnpm --filter=web test:unit && pnpm --filter=web typecheck

Stack: Next.js, Prisma (Postgres), Redis + BullMQ, tRPC, Hono for the public API, NextAuth, Tailwind, nodemailer. See CONTRIBUTING.md.

Credits and license

Scribase Mail Studio is a fork of useSend by Koushik and the useSend contributors; the dashboard, public API, SDKs and editor are largely their work. We added the Resend-compatible layer, the SMTP and Oracle Cloud providers, inbound mail, Svix webhooks, abuse controls and billing. See MERGE.md and NOTICE.

Licensed under the GNU AGPL-3.0. If you run a modified version for users over a network, offer them its source; the app links to it from the sidebar, login and unsubscribe pages.

If this saves you a Resend bill, a star helps others find it.