Skip to content

For developers

Send with React Email. Grow with Mailmanny.

Write your emails as React components and send them with one call. Add subscribers from your own signup flow, start automations with events, and push your whole templates folder from the command line.

TypeScript · ESM and CommonJS · zero dependencies
send-welcome.tsx
await mm.emails.send({
from: "Manny <hello@mannysbakery.com>",
to: "sam@example.com",
subject: "Welcome to the bakery!",
react: <WelcomeEmail name="Sam" />,
});
Inboxsam@example.com
Waiting for mail

Quickstart

Your first email is a few lines away.

Verify your domain, create a key, and send. Use the SDK for React Email, or plain HTTP from any language.

  1. 1Verify your sending domainAdd the DKIM and SPF records Mailmanny shows you.
  2. 2Create an API keyFull access for your backend, or a narrow key per integration.
  3. 3SendReact components, HTML, or a template you pushed.
import { Mailmanny } from "mailmanny";import WelcomeEmail from "./emails/welcome";
const mm = new Mailmanny(process.env.MAILMANNY_API_KEY);
const { data, error } = await mm.emails.send({  from: "Manny's Bakery <hello@mannysbakery.com>",  to: "sam@example.com",  subject: "Welcome to the bakery!",  react: <WelcomeEmail name="Sam" />,});
if (error) {  console.error(error.name, error.message);} else {  console.log("Queued", data.id);}

What you get

The audience tools of Mailchimp, the developer experience of Resend.

React Email, built in

Pass a component as react and the SDK renders HTML and plain text for you, exactly like Resend. Your existing emails folder just works.

Audience keys

Give a signup integration a key that can only add people to the audiences you pick: no reading your list, no sending. Double opt-in and consent records included. On Essentials and up.

Templates from your repo

npx mailmanny templates push renders every React Email file and uploads it. Send by name, or use it in campaigns. On Essentials and up.

Events start automations

Track order.completed or trial.started from your backend and let a welcome series or win-back flow take it from there. On Standard and Pro.

Retries without duplicates

Send an Idempotency-Key and retry as often as you like. Batches resume where they stopped; the SDK backs off on 429s.

Deliverability handled

DKIM and SPF on your own domain, automatic bounce and complaint suppression, and every workspace isolated from the others.

Coming from Resend?

Change the import and the key. emails.send, batches, scheduling, tags and idempotency keys keep working.

Diff
- import { Resend } from "resend";- const resend = new Resend(process.env.RESEND_API_KEY);+ import { Mailmanny } from "mailmanny";+ const resend = new Mailmanny(process.env.MAILMANNY_API_KEY);
  await resend.emails.send({    from: "Acme <hello@acme.com>",    to: "sam@example.com",    subject: "Your receipt",    react: <ReceiptEmail order={order} />,  });

Coming from Mailchimp?

Contacts upsert by email, accept subscriber hashes, and take tags as { add, remove }. Double opt-in is on unless you say otherwise.

TypeScript
const { data, error } = await mm.contacts.create({  audienceId: "0199e9c1-2f3a-7b4c-8d5e-6f7a8b9c0d1e",  email: "sam@example.com",  firstName: "Sam",  tags: ["newsletter"],  consentSource: "Footer signup form on mannysbakery.com",});
// Double opt-in audiences: "pending" until they click// the confirmation email.console.log(data?.status);

Push your emails folder. Send by name.

The CLI compiles every React Email file with your own toolchain, renders it, and uploads HTML plus plain text. Run it in CI and your templates never drift from your code.

Templates & the CLI
Terminal
npx mailmanny templates push
Output
Mailmanny pushing 3 templates from emails → https://www.mailmanny.com/api/v1  ✓ welcome         created  4.1 KB  “Welcome to Manny's Bakery”  ✓ receipt         updated  6.8 KB  “Your receipt”  ✓ auth.reset      created  1.2 KB  “Reset your password”3 pushed. Use them with template_id: "<id>" when sending.

Ship your first email before lunch.

Free to start, with 100 API emails a day. Verify a domain, create a key, and send with the code you already have. Essentials, from $9 a month, includes 10,000 API emails a month and no daily cap.

Essentials, from $9 a month, includes 10,000 API emails a month and no daily cap. Verify a domain, create a key, and send with the code you already have.