JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 201
  • Score
    100M100P100Q94830F
  • License MIT

EmailMate SDK — Resend-compatible email API (emailmate.dev)

Package Exports

  • emailmate
  • emailmate/convex

Readme

emailmate

Email API that doesn't eat your margins.

New here? Simple SDK. React Email baked in.

Coming from Resend? One line change. No refactor.

Install

npm install emailmate

Quick Start

import { EmailMate } from 'emailmate';

const em = new EmailMate('em_xxxxxxxxxxxx');

await em.emails.send({
  from: 'you@yourapp.com',
  to: 'user@example.com',
  subject: 'Welcome',
  html: '<h1>You're in.</h1>'
});

With React Email

import { EmailMate } from 'emailmate';
import { WelcomeEmail } from './emails/welcome';

await em.emails.send({
  from: 'you@yourapp.com',
  to: 'user@example.com',
  subject: 'Welcome',
  react: <WelcomeEmail name="John" />
});

Coming from Resend?

One line. That's it.

// Before
import { Resend } from 'resend';

// After
import { Resend } from 'emailmate';

// Your code? Untouched. Same API. Same types. Same everything.
const resend = new Resend('em_xxxxxxxxxxxx');
await resend.emails.send({ ... });

API

// Send email
await em.emails.send({ from, to, subject, html });

// Get email
const email = await em.emails.get('em_xxxx');

// Cancel scheduled email
await em.emails.cancel('em_xxxx');

// Domains
await em.domains.create({ name: 'example.com' });
await em.domains.list();
await em.domains.verify('dom_xxxx');

// Audiences & Contacts
await em.audiences.create({ name: 'Newsletter' });
await em.contacts.create('aud_xxxx', { email: 'user@example.com' });

// API Keys
await em.apiKeys.create({ name: 'Production' });
await em.apiKeys.list();

BYOS (Bring Your Own SES)

Your AWS account. Pay AWS directly.

const em = new EmailMate('em_xxxx', {
  baseUrl: 'https://your-domain.com/api'
});

License

MIT