Email so simple it's bad.

Stop configuring email.

Send transactional email with a tiny API, beautiful templates, attachments, CC, BCC, reply-to support, and zero nonsense.

await baddy.send({
    to: "[email protected]",
    subject: "Welcome",
    html: "<h1>Hello</h1>"
});
Get Baddy
Features

Everything you need. Nothing you don't.

Tiny

Small API surface.
Easy to learn.
Hard to misuse.

Modern

ES Modules.
Pure JavaScript.
No framework required.

Complete

HTML Email
Text Email
CC & BCC
Attachments
Templates

Predictable

Templates are functions.
Emails are objects.
No hidden magic.

Philosophy
Most email libraries make sending email feel complicated.

BaddyEmail starts from a different idea.

Email is already complicated.
Your library shouldn't be.

import welcome from "./templates/welcome.js";

await baddy.send(
    welcome({
        email: "[email protected]",
        name: "Jane"
    })
);
Get Baddy

Ready?

There are no signup forms. No marketing funnel. No account creation. No waiting list. Just send an email.

No.

Baddy email me ;)

To:
[email protected]

Include:

[email protected]

10987654321

Yes, seriously.