resend-node
The official Node.js and TypeScript SDK for sending email through the Resend API.
Repository Health
Technical Analysis
Resend’s official Node.js SDK is a fully typed client for the Resend email API, letting you send transactional and marketing email with a few lines of code. It wraps every Resend endpoint — emails, batches, broadcasts, domains, contacts, audiences/segments, API keys, webhooks, and more — behind a single ergonomic Resend class.
Beyond plain text and HTML, the SDK can render React email components to HTML at send time via @react-email/render, so you can author templates as JSX and ship them without a separate build step. It targets modern Node.js (>=20), ships dual ESM/CJS builds, and returns a consistent { data, error } shape on every call.
What You Get
- A single typed
Resendclient exposing every Resend API resource (emails, batch, broadcasts, domains, contacts, segments, API keys, webhooks, templates, and more). - First-class React email support that renders JSX templates to HTML at send time via the optional
@react-email/renderpeer dependency. - A consistent
{ data, error }return shape on every call, so failures are handled as values rather than thrown exceptions. - Dual ESM/CJS builds with bundled
.d.tstype declarations and idempotency-key support for safe retries.
Common Use Cases
- Sending transactional email such as sign-up confirmations, password resets, and receipts from a Node.js backend.
- Delivering marketing broadcasts and managing contacts, segments, and suppressions programmatically.
- Rendering React Email components to HTML and sending them directly without a separate template pipeline.
Under The Hood
Architecture — The public surface is a single Resend class in src/resend.ts that holds a base URL, user agent, and an auth Headers object, then instantiates one resource controller per API area (Emails, Batch, Broadcasts, Domains, Contacts, Segments, ApiKeys, Webhooks, and more) as readonly fields. Each controller receives the Resend instance and calls its shared post/get/put/patch/delete helpers, which funnel into one fetchRequest method wrapping the native fetch; that method normalizes every outcome into a { data, error, headers } response so errors are returned as values. React templates are rendered to HTML in src/render.ts, which lazily imports @react-email/render only when a react payload is supplied.
Tech Stack — Written in TypeScript targeting Node.js >=20, with a build via tsdown producing dual ESM/CJS output plus .d.ts declarations. Runtime dependencies are minimal: postal-mime for inbound email parsing and standardwebhooks for webhook verification, with @react-email/render as an optional peer dependency. Tooling uses Biome for lint/format, Vitest for tests, and PollyJS for recorded HTTP fixtures.
Code Quality — Testing is thorough: 36 *.spec.ts files sit alongside the source, plus integration specs backed by recorded HAR fixtures under __recordings__ and a separate e2e/ suite. Each resource is split into a controller plus a dedicated interfaces/ directory, giving strong type coverage and consistent naming. Error handling is deliberate — fetchRequest distinguishes JSON API errors, malformed responses, and network failures, returning a typed ErrorResponse in each case.
API Design — The developer experience is a highlight: a two-line setup (new Resend(key) then resend.emails.send(...)) gets you sending, method names mirror REST verbs and resource names, and the uniform { data, error } return removes try/catch boilerplate. All request and response types are exported from the package root, the README documents text, HTML, and React flows, and idempotency keys are a first-class option for safe retries.
Used by 39 apps in this directory
Botpress
AI Assistants · AI Development · Customer Support
The open-source hub for building and deploying LLM-powered AI agents with TypeScript-first tooling, 40+ integrations, and a revolutionary code-execution agent framework.
Bubble Lab
Automation · AI Development
Open-core workflow engine for building AI-powered automations in TypeScript that run natively inside Slack — no context switching required.
Cap
Team Chat · Video Conferencing
Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.
cmux
Developer Tools · AI Development
A native, Ghostty-based macOS terminal with vertical tabs, agent-aware notifications, and a scriptable browser built for running many parallel AI coding agent sessions instead of juggling tmux panes.
Dittofeed
Marketing · Automation
Open-source omni-channel customer engagement platform for automating transactional and marketing messages via email, SMS, WhatsApp, Slack, and mobile push.
Documenso
Digital Signiture
Self-hosted, open-source DocuSign alternative with legally binding PDF signatures, multi-party workflows, and a full REST and tRPC API.
Dokploy
Devops · Hosting Control Panel · Security
Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration
Dub
Marketing · Analytics
The open-source link attribution platform for short links, conversion tracking, and affiliate programs — powering 100M+ clicks monthly.
Finance
AI Assistants · Invoicing Finance
Bloomberg-grade financial data and AI-powered analysis through a conversational chat interface you can self-host.