When working on projects that need to send transactional emails, I often look for tools that are simple, developer-friendly, and reliable. Recently, services like Resend have become very popular because they offer a clean API and great developer experience.
But while exploring email providers, I noticed something interesting.
MailChannels offers a similar free tier and a little cheaper pricing at scale, yet it doesn't have the same modern developer tooling ecosystem around it.
That observation sparked the idea for this project.
The Idea
My original idea was simple:
What if MailChannels had a modern Node.js SDK with a developer experience similar to tools like Resend?
MailChannels already provides a powerful API for sending emails and managing email infrastructure, but integrating directly with the API means dealing with things like:
- Manual HTTP requests
-
snake_casepayloads - Repetitive boilerplate code
- Less ergonomic developer workflows
So the goal became to create a clean, TypeScript-first SDK that makes working with MailChannels feel natural for JavaScript developers.
Why MailChannels?
One thing that stood out to me was the pricing options.
Both MailChannels and Resend offer a similar free tier:
| Provider | Monthly Emails | Daily Limit | Price |
|---|---|---|---|
| Resend | 3,000 | 100/day | Free |
| MailChannels | 3,000 | 100/day | Free |
But at higher volumes, MailChannels is cheaper.
| Emails / Month | Resend | MailChannels |
|---|---|---|
| 10,000 | N/A | $10 |
| 50,000 | $20 | $15 |
| 100,000 | $35 / $90 (with dedicated IP) | $30 |
| 200,000 | $125 / $160 (with dedicated IP) | $60 |
For projects sending large volumes of transactional email, that difference can add up.
See more:
The Goal of the SDK
The goal isn't to replace or compete with existing tools.
Instead, the idea is to improve the developer experience when using MailChannels by providing:
- A clean Node.js API
- TypeScript support
- Consistent naming conventions
- Simple email sending methods
- A more ergonomic interface for developers
For example, sending an email can look like this:
import { MailChannels } from "mailchannels-sdk"
const mailchannels = new MailChannels("your-api-key")
await mailchannels.emails.send({
from: "Acme <hello@acme.com>",
to: "user@example.com",
subject: "Welcome!",
html: "<p>Thanks for joining</p>"
})
The SDK
The SDK fully supports all features and operations available in the MailChannels API. It is actively maintained to ensure compatibility and to quickly add support for new API features as they are released.
Installation
Add mailchannels-sdk dependency to your project
# npm
npm i mailchannels-sdk
# yarn
yarn add mailchannels-sdk
# pnpm
pnpm add mailchannels-sdk
Features
Some of the things you can do with the SDK:
- Send transactional emails
- Check DKIM, SPF & Domain Lockdown
- Configure DKIM keys
- Webhook notifications
- Manage sub-accounts
- Retrieve metrics
- Handle suppressions
- Configure inbound domains
- Manage account and recipient lists
For a detailed reference mapping each SDK method to its corresponding MailChannels API endpoint reference, see the SDK-API Mapping
Requirements
Note
Just to be clear:
This SDK is not affiliated with MailChannels Corporation.
It's an independent open source project created to improve the developer experience when working with the MailChannels API.
Source
If you found this project useful or enjoyed reading about it, consider giving the repository a ⭐ on GitHub. It really helps the project grow and reach more developers.
You can also explore the full documentation and package details below:
GitHub
https://github.com/yizack/mailchannels
NPM
https://npmjs.com/package/mailchannels-sdk
Documentation
https://mailchannels.yizack.com

Top comments (0)