Quickstart
Send your first email with Radon Email in about five minutes — one provider, one send, no branching decisions.
By the end of this page you'll have sent a real email through a unified API and read back a normalized result. We'll use Resend because its API key works instantly and it's free (no license), but every step maps onto any of the 16 providers.
Prerequisites
Node 18 or newer, and a Resend account with an API key
(re_…) from the Resend dashboard. Sending from
a custom domain requires verifying it in Resend first.
Install the package
npm install @radonsdk/emailZero required dependencies — no resend SDK, no axios. Radon talks to every
provider over fetch. (Only the generic SMTP fallback needs nodemailer, an
optional peer dependency.)
Set your key
Radon reads provider credentials from environment variables named
RADON_<PROVIDER>_<KEY>, so you never hard-code secrets.
RADON_RESEND_API_KEY=re_...Create the client
Configure the providers you use and a defaultFrom address applied to every
message that doesn't set its own.
import { RadonEmail } from "@radonsdk/email";
export const email = new RadonEmail({
providers: { resend: {} }, // {} = read creds from the env var
defaultFrom: "Acme <hello@acme.com>", // required unless every message sets `from`
});With free-only providers you don't need to call email.init(). init() is
only required when you configure a Pro provider or use a Pro feature (batch,
template management, webhooks) — it verifies your license.
Send an email
Any subject, html, or text can contain {{variable}} placeholders. Pass
variables and Radon interpolates them for free, before the adapter runs.
import { email } from "@/lib/email";
const result = await email.send({
to: "ada@example.com",
subject: "Welcome, {{name}}!",
html: "<p>Hi {{name}}, thanks for joining.</p>",
variables: { name: "Ada" },
});Check the result
Every provider returns the same SendResult shape.
console.log(result.status); // "queued" | "sent" | "scheduled"
console.log(result.id); // provider message id — correlates to webhook events
console.log(result.provider); // "resend"
console.log(result.accepted); // ["ada@example.com"]You should see a
statusof"queued", anidstring, and the email arrive in the recipient's inbox (or the Resend dashboard's Emails log).
🎉 That's it
You sent an email through a unified API. The exact same code runs on SendGrid,
Amazon SES, or Mailgun — you'd only change the providers config.
Next steps
Radon Email
One unified, provider-agnostic API for 16 email providers — Western, African, and raw cloud. Write email.send() once and swap providers with a config change, never a code change.
Core concepts
The mental model behind Radon Email — providers, the from requirement, capabilities, templates, webhooks, and how swapping providers actually works.