Skip to content
Modern TypeScript Edge RuntimeDeno 2 & Deno Deploy Ready

Zero-dependency transactional email for Deno 2 & Deno Deploy

Send emails from Deno servers and edge workers with native TypeScript execution, zero npm installs, and low-latency global edge delivery.

3,000 emails/month freeZero credit card requiredSub-20ms edge latency
No cold start
Cold Start
Long-lived process, not a lambda
202 Accepted
Edge Latency
Queued durably before any provider call
6,000 / mo
Free Monthly Sends
Forever free tier
Developer Ergonomics

Drop into your application in under 60 seconds

Native typed interfaces with zero unnecessary dependencies. Built for standard fetch and modern edge runtimes.

$deno add npm:sadasend
main.ts
typescript
TYPESCRIPT
import { SadaSend } from 'npm:sadasend';

const apiKey = Deno.env.get('SADASEND_API_KEY');
const sadasend = new SadaSend({ apiKey });

Deno.serve(async (req) => {
  if (req.method !== 'POST') return new Response('Method not allowed', { status: 405 });

  const { email, alertMessage } = await req.json();

  const { data, error } = await sadasend.emails.send({
    from: 'alerts@yourdomain.com',
    to: email,
    subject: 'System Alert Notification',
    html: `<p><strong>Alert:</strong> ${alertMessage}</p>`,
    tags: ['monitoring', 'deno'],
  });

  if (error) {
    return new Response(JSON.stringify({ error: error.message }), { status: 500 });
  }

  return new Response(JSON.stringify({ success: true, id: data.id }), {
    headers: { 'Content-Type': 'application/json' },
  });
});

Native Deno.serve edge handler using npm:sadasend or global fetch with fast dispatch.

Core Infrastructure

Engineered for high deliverability and zero incident risk

Every layer from edge connection pooling to per-key rate limits is designed to keep critical transactional dispatches fast, reliable, and contained.

Native Deno 2 & Deno Deploy Ready

Runs seamlessly on Deno 2 runtimes and global Deno Deploy edge locations without polyfills or build steps.

Zero External Package Dependencies

Works using standard Deno global fetch or lightweight npm:sadasend specifiers with native TypeScript types.

immediate Cold Starts

Instant startup on edge nodes ensures your Deno microservices respond immediately without module initialization lag.

Native Deno.env Integration

Seamlessly loads API keys from Deno.env without requiring external dotenv libraries or configuration files.

Per-Key Staging Recipient Allowlists

Lock development API keys to internal test domains to guarantee test runs never leak to customers.

RFC 8058 Automatic Headers

Automatic List-Unsubscribe headers ensure compliance with 2026 Google and Yahoo inbox delivery guidelines.

Architectural Comparison

SadaSend vs Legacy Node Mailers via Deno Compat

Why Deno developers choose native SadaSend over legacy Node.js mail libraries.

Feature & CapabilitySadaSendLegacy Node Mailers via Deno Compat
Native Edge & Deno Deploy ArchitectureNode socket shims fail on edge
Zero C-Binding DependenciesBuild errors on edge nodes
Native TypeScript Out of the BoxRequires @types installations
Per-Key Staging Allowlists
Hosted MCP Tool Integration
Free Monthly Tier6,000 sends foreverTrial only
Forever Free Tier
Transparent Economics

Start with 3,000 emails every month at zero cost

No artificial paywalls on security. Unlike legacy providers that reserve recipient allowlists or dedicated IP pools for high enterprise tiers, every SadaSend account receives full safety controls from day one.

3,000 dispatches monthly forever with zero credit card
All safety gates, allowlists, and velocity limits included
Scale seamlessly: Starter ($12/mo for 10k), Pro ($19/mo for 50k), Scale ($79/mo for 250k)
Free Developer Plan
$0 / mo

No credit card required

Create Free AccountCompare all paid plan tiers
Frequently Asked Questions

Everything you need to know about Deno email API

Clear, transparent answers on deliverability, API authentication, and rate limits.

Yes! SadaSend supports Deno 2 natively. You can install it using deno add npm:sadasend or import it directly via import { SadaSend } from "npm:sadasend".
Technical Deep Dives

Related developer guides and architectural tutorials

Explore step-by-step production implementation blueprints, benchmarks, and protocols.

Documentation

REST API Reference & Endpoints

Complete REST API reference for sending emails, managing API keys, tracking delivery events, and configuring recipient allowlists with low latency.

Read guide
Documentation

Official Client SDKs (TypeScript & Python)

Official zero-dependency client SDKs for SadaSend. TypeScript and Python packages are live on npm and PyPI with typed results and auto-idempotency.

Read guide
Documentation

API Error Codes & Troubleshooting

HTTP status codes, machine-readable error reasons, and step-by-step remediation guides for API key rate limits, circuit breakers, and bounce handling.

Read guide
Deep Dive2 min read

Deno 2.0 Transactional Email Guide: Native TypeScript Runtime

Deno 2.0 simplifies backend development with native TypeScript support and zero package.json bloat. Learn how to send transactional emails cleanly.

Read tutorial
Deep Dive3 min read

How to Send Transactional Email with Bun and TypeScript (Zero Dependencies)

Stop wrestling with bloated Node.js polyfills. Learn how to send transactional emails in Bun with sub-millisecond cold starts and full TypeScript type safety.

Read tutorial
Deep Dive3 min read

Cloudflare Workers & Hono at the Edge: Ultra-Low Latency Email Dispatch

Execute email dispatch within 5ms of your users globally by deploying lightweight Hono applications to Cloudflare Workers.

Read tutorial
Deep Dive3 min read

Why your transactional email goes to spam

People assume transactional mail is exempt from filtering because it was requested. Mailbox providers do not know that, and mostly do not care.

Read tutorial
Deep Dive3 min read

Nodemailer vs Native Fetch in 2026: Why Modern Runtimes Abandoned Legacy SMTP

Nodemailer served the Node.js ecosystem for 15 years. Here is why modern serverless and edge runtimes have replaced raw SMTP libraries with native fetch.

Read tutorial