Now sending in 14 regions worldwide

Email for developers
who'd rather ship.

Transactional and marketing email through one clean REST API. Validation, templates, webhooks, and inbound forwarding — in a dashboard that respects your time.

POST /v1/emails
curl -X POST https://api.stacksender.dev/v1/emails \
  -H "Authorization: Bearer re_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourapp.com",
    "to": "user@example.com",
    "subject": "Welcome to Acme",
    "html": "<p>Thanks for signing up.</p>",
    "validate_before_send": true
  }'

No credit card · 5-minute setup · Cancel any time

Quietly powering email for fast-moving teams

FOUNDRYPINPOINTFERNCOASTALMODULAREVERGREENBLUEPRINT

AWS SES

Backed by enterprise SMTP infrastructure

60%+

Lower per-email cost past 50k/mo vs. Resend

5 min

Signup → first send (without a credit card)

Status →

Live health checks at /status

Only on StackSender

Eight things no other email API ships.

We're not just cheaper — we're the only platform with the developer's wishlist already in the box. Every feature below is included on every paid plan.

01
Type-safe · SHIPPED

Compile-time email contracts

Your IDE catches missing variables before deploy.

Live in stacksender/define. Declare each email's variable shape once with defineEmail<{...}>(). Missing or typo'd fields fail at the TypeScript boundary; CI rejects the PR. The only email provider with end-to-end compile-time safety.

welcome.email.ts
const welcome = defineEmail<{
first_name: string;
plan: "free" | "pro";
}>(...);

// ❌ Build fails before deploy
welcome.send({ to, vars: { first_nme: ... } })
02
Local-first · SHIPPED

Real localhost dev inbox

npx ep dev — every send appears in a local mailbox.

Live in npx ep dev. Boots a localhost mailbox at port 8025 with a polished dark-mode UI. Set EP_DEV_INBOX_URL and the SDK auto-routes — staging never leaks an email to real recipients again.

localhost:8025 — StackSender dev inbox
noreply@acme.devWelcome to Acme14:02
billing@acme.devReceipt #240113:48
noreply@acme.devReset your password13:17
3 captured · 0 sent to recipients (dev mode)
03
Branch sandboxes · SHIPPED

An API key per git branch

Every PR gets its own isolated environment.

Live at POST /api/v1/sandboxes. CI calls our endpoint with a branch name; we return a key prefixed re_sbx_ that bypasses billing, ignores production suppressions, and auto-revokes when the branch is deleted. Idempotent — same branch gets the same key on retries.

git branches
mainre_live_8x9...PRODUCTION
feat/onboardingre_sbx_K2L...SANDBOX
fix/password-resetre_sbx_4Hk...SANDBOX
04
Inbox testing · SHIPPED

Real placement tests, included

Seed accounts at every major provider. No third-party tool.

Live in /dashboard/placement. Submit a subject, we fan out to Gmail / Outlook / Apple / Yahoo / Proton seed mailboxes and return placement (Inbox · Updates · Promotions · Spam) plus a 0–100 score in seconds. Free tier: 2/mo · Pro: 10/mo · Scale: 50/mo.

Placement testsubject: "Order shipped"
GmailInbox
OutlookInbox
Apple MailInbox
Yahoo MailPromotions
ProtonInbox
5/5 inbox · 4 inbox / 1 promoScore 92/100
05
AI advisor · SHIPPED

Pre-send deliverability review

Spam score, accessibility, dark-mode, mobile — in one report.

Live now in the template editor. Eight deterministic checks plus optional GPT-4o-mini suggestions: spam triggers, Flesch reading level, alt-text coverage, link density, mobile rendering, dark-mode pitfalls, plain-text fallback, and CAN-SPAM unsubscribe compliance. Free track works without any AI key.

AIPre-send report
Spam triggers2 found
Reading levelGrade 7
Mobile renderExcellent
Dark modeLogo invisible
Alt text coverage82%

“Move the all-caps ‘FREE’ out of the subject line and add alt text to lines 14, 22, 31.”

06
Cost control · SHIPPED

Hard caps & spend forecasting

Set a monthly limit. We pause before you blow it.

Live now in Billing. Set a hard monthly USD cap with 50/75/90% email alerts and automatic pause-at-limit — sends return 402 cost_cap_reached until the next period. The only email API that won't let your invoice surprise you.

Monthly cap$73.20 / $100
50% ALERT ✓75% ALERT90% PAUSE

Forecast:$94.40 by month-end. We'll auto-pause sends if you cross $100.

07
Granular opt-out · SHIPPED

Categorical unsubscribe

Recipients pick what they want, not just all-or-nothing.

Live now in Settings → Preferences. Define your own categories (receipts, digest, marketing) and recipients choose per category from a hosted preference center. Tag any send with category: "slug" and we filter opt-outs at the API layer.

Email preferences
Order receiptsRequired
Weekly digest
Product updates
Marketing offers
08
Health score · SHIPPED

Daily domain health, one number

0–100 score, refreshed daily, drill into anything red.

Live now under Domains → Health. A single 0–100 score per sending domain built from DKIM/SPF/DMARC validity, 5-RBL cleanliness, complaint rate, bounce rate, and active-sender signals. Recomputed every 24 hours plus on-demand recheck.

94

Excellent

RBLs

0/12

Reputation

High

Complaints

0.04%

Comparable solutions cost $300+/mo across multiple vendors.We bundle them at $25/mo, starting on the Pro plan.

Integrate

A simple, elegant interface — start sending in minutes.

Our SDKs feel like the language you're writing in, not a thin wrapper over HTTP. Idempotency keys on every mutation. Real status codes — not 200 with error body. Errors include actionable hints.

Node.jsPythonGoPHPRuby.NETRustRESTSMTP
stacksender.ts
import { StackSender } from "stacksender";
const ep = new StackSender(process.env.EP_API_KEY);

await ep.emails.send({
  from: "hello@yourapp.com",
  to: "user@example.com",
  subject: "Welcome to Acme",
  html: `<p>Thanks for signing up.</p>`,
});
200POST/v1/emails82ms
200POST/v1/emails76ms
200POST/v1/emails91ms
200POST/v1/validate44ms
200POST/v1/emails68ms

Developer experience

An API that gets out of your way.

The send endpoint is a thin layer over AWS SES — your request hands off to SMTP and returns. Idempotency keys de-dupe replays. Detailed timing headers come back on every response so you can measure the path yourself.

  • HTTP/2 keep-alive on every connection
  • Connection pooling baked into the SDK
  • Idempotency keys de-dupe at the edge
  • Detailed timing headers on every response

Test mode

Simulate every event, ship with confidence.

Trigger delivered, opened, clicked, bounced, complained, or unsubscribed from the dashboard or API. Wire your webhook handlers without waiting for real recipients. Run in CI. Mock with one line of test code.

  • One-click event simulation in the dashboard
  • Test API keys segregate live + sandbox sends
  • Replay any historical event into your handler
  • Inspect & re-deliver failed webhooks
email.delivered
email.opened
email.clicked
email.bounced
email.complained
email.unsubscribed

email.delivered

POST → /api/webhooks/email

200Just now

email.opened

POST → /api/webhooks/email

20012s ago

email.clicked

POST → /api/webhooks/email

20047s ago

Modular webhooks

Real-time events, signed and reliable.

Subscribe to the events you care about, scope by endpoint, and get cryptographically signed deliveries with automatic retry-on-failure. Replay history, filter by domain, and pause without losing in-flight messages.

  • HMAC-SHA256 signature on every payload
  • Exponential backoff with 24-hour retry window
  • Per-endpoint event filtering
  • 30-day delivery history with re-delivery

Composer

Write using a delightful editor.

A modern visual composer for non-technical teammates and a raw HTML mode for the perfectionist devs. Variables auto-detected. Test-send to your own inbox in one click. Versioned saves so you can roll back to last Tuesday.

  • Visual + raw HTML, always in sync
  • Mustache-style {{variables}}, fail loud on missing
  • Live test-send with placeholder substitution
  • Component preview across Gmail, Outlook, Apple Mail
welcome.email.tsx
BIUH1H2P↩ Link⬚ Button

Acme · Welcome

Hi {{first_name}} 👋

Welcome to Acme. We're glad you're here. Your account is ready and your trial starts today — no card required for 14 days.

Open dashboard →

You're receiving this because you signed up. Unsubscribe

welcome.tsx
// emails/welcome.tsx
import { Html, Head, Body, Container, Heading, Text, Button } from "@react-email/components";

export default function Welcome({ name }: { name: string }) {
  return (
    <Html>
      <Head />
      <Body className="bg-white">
        <Container>
          <Heading>Hi {name} 👋</Heading>
          <Text>Welcome to Acme. Your trial starts today.</Text>
          <Button href="https://acme.dev/dashboard">
            Open dashboard
          </Button>
        </Container>
      </Body>
    </Html>
  );
}

React Email support

Author emails as React components.

Compose emails the same way you build product UI. Hot-reloaded local previews, a typed component library, and a one-line render-to-HTML for sending. Skip the hand-rolled <table> hell.

  • First-class @react-email/components support
  • Server-rendered HTML, ready to ship
  • Storybook-style email gallery in your repo
  • Type-safe variables — your editor catches mistakes

Contacts & audiences

Group and segment without the spreadsheet.

Import lists in minutes — CSV, JSON, or live-sync from your database via the API. Tag, filter, and segment with predicates. Suppressions sync automatically; nobody hears from you twice after asking to leave.

  • CSV / JSON / API import
  • Tag-based and predicate segments
  • Account-wide suppression sync
  • GDPR-grade export & forget

Newsletter audience

12,847 subscribers · 312 added this week

+ Import
AllActivePendingUnsubscribed
AL

Ada Lovelace

ada@foundry.dev

Active2 days ago
MC

Marcus Chen

marcus@pinpoint.io

Active5 days ago
PS

Priya Shah

priya@fern.app

Active1 week ago
DR

Diego Rivera

diego@coastal.ai

Pending1 week ago
YT

Yuki Tanaka

yuki@modular.dev

Active2 weeks ago

Sent

184,302

+12.4%

Delivered

99.8%

+0.2%

Opened

47.1%

+3.6%

Deliverability — last 30 days

99.81%

Apr 11Apr 18Apr 25May 02May 09

Delivered

183,946

Bounced

248

Complained

12

Suppressed

96

Analytics

The metrics that actually move the needle.

Delivered, opened, clicked, bounced — broken down by domain, subject line, and time of day. Compare campaigns. Spot bounce-rate spikes before they hurt you. Export to your warehouse.

  • Daily and hourly granularity, 365-day window
  • Per-domain deliverability scorecards
  • A/B subject testing with significance scoring
  • Webhook stream for your warehouse

Deliverability

Reach humans, not spam folders.

The work most providers leave to you. We do it before you ask.

Proactive blocklist tracking

We watch the major RBLs hourly. Get notified before your IP shows up in someone's filter.

Faster time to inbox

Routed through warmed pools, optimized for major receiver heuristics. Median delivery under 6 seconds.

BIMI ready

VMC verification flow built-in. Show your verified logo in Gmail, Yahoo, Apple Mail.

Managed dedicated IPs

We handle the warm-up curve. You see metrics; we handle the gradient.

Dynamic suppression

Bounces and complaints auto-suppress across your account, syncable across teams and webhooks.

IP & domain monitoring

Real-time reputation scoring against Google Postmaster, Microsoft SNDS, and our own signal.

DNS verification

DKIM, SPF, DMARC checked at send and continuously after. Drift alerts when records change.

Battle-tested infra

Multi-region SMTP via AWS SES. Live health checks on /status — no marketing-grade uptime numbers without measurement.

DMARC enforcement

Quarantine and reject policies are honored. Aggregate reports parsed in your dashboard.

Everything you need

One platform. Both products. No surprises.

Sending

Drop-in REST API

A familiar, well-documented HTTP surface. Send single, batch, or scheduled emails. Migrate from any provider in an afternoon — same shape, fewer surprises.

Reliability

Hardened deliverability

Automatic DKIM, SPF, and DMARC. Bounce, complaint, and suppression handling. We protect your sender reputation so your mail keeps reaching the inbox.

ValidationDifferentiator

Verify before you send

Catch typos, disposable domains, and dead inboxes before they bounce. Risk-scored results, cached MX lookups, and an opt-in pre-send filter.

Templates

Author once, send forever

Reusable HTML templates with clean variable substitution. Visual editor or raw HTML — your call. Versioned, previewable, and testable from the dashboard.

Webhooks

Event stream you can trust

Signed HTTPS callbacks for delivered, opened, clicked, bounced, and complained events. Replay queue, retry-with-backoff, and cryptographic signatures.

Inbound

Receive & forward

Catch-all inbox routes and per-alias forwarding rules with SRS rewriting. Spin up support@ or hello@ in two clicks — we handle the plumbing.

Early access — open today

Be one of our
first paying customers.

StackSender is brand new. We'd rather show you that than fake testimonials. We're talking to indie developers right now to make sure the API is what you need. If you're shipping a SaaS this month, get a key — and email us; we'll pair-program your integration on a call.

Built on

AWS SES — the same infrastructure your enterprise vendors resell.

No lock-in

REST shape mirrors common providers — migrate in or out in an afternoon.

Pricing

Honest pricing. No surprises.

Start free. Upgrade when your product is live. Pay for what you actually send — no per-seat fees, no contact-tier traps, no overage panic.

Drag to estimate · emails / mo

Free

For evaluating the platform on a side project.

$0/mo

3,000 emails / mo

Start free
  • 100 emails / day
  • 1 sending domain
  • Full REST API
  • DKIM · SPF · DMARC
  • 7-day email history
  • Community support
Recommended

Pro

For shipping production apps.

$25/mo

50k emails / mo

Get started
  • No daily cap
  • 10 sending domains
  • Custom unsubscribe page
  • Webhooks & analytics
  • 90-day email history
  • Priority support · 24h

Scale

For high-volume senders & growing teams.

$75/mo

200,000 emails / mo

Get started
  • 100 sending domains
  • 180-day email history
  • Custom MAIL FROM
  • Dedicated IP add-on
  • Live status page (/status)
  • Slack support

Enterprise

For volume above 500k / mo or compliance needs.

Custom

Tailored to your needs

Contact us
  • 1M+ emails / mo
  • Dedicated infrastructure
  • SOC 2 reporting
  • Custom DPA & contracts
  • Onboarding engineer
  • 24/7 phone support

Every plan includes DKIM, SPF & DMARC, delivery & bounce tracking, webhooks, and the full REST API. Cancel any time. No surprise overage fees.

Questions

What people ask before signing up.

What can you do that no one else does?

Eight things, bundled in: end-to-end TypeScript-typed email schemas, a real localhost dev inbox via `npx ep dev`, automatic per-branch sandbox API keys, free inbox-placement testing across Gmail/Outlook/Yahoo/Apple/Proton, an AI pre-send deliverability advisor, hard monthly cost caps with auto-pause, categorical (not all-or-nothing) unsubscribe, and a daily 0-100 domain health score. Each is a paid add-on or a separate vendor elsewhere — comparable solutions cost roughly $300/mo combined.

How do you compare on price?

We charge $0.10 per 1,000 emails on paid plans — typically 60-75% less than mainstream alternatives once you cross 50,000 emails per month. Free tier covers 3,000 / mo so you can ship without a credit card.

Can I migrate from another provider?

Yes. Our REST shape is intentionally compatible with the conventions developers already know — base URL, send command, webhook payload. In most cases a search-and-replace is enough.

How is deliverability handled?

We run on enterprise-grade SMTP infrastructure with automated DKIM key rotation, SPF & DMARC alignment, complaint feedback loops with major ISPs, and a shared-IP pool that's continuously warmed and reputation-managed.

What about marketing emails?

We support both transactional (priced per email) and marketing (priced per contact). One unified dashboard, one API, one bill. Toggle the pricing above to see both.

Do you have an SLA?

Not yet — we're a new platform and won't promise an uptime number we haven't measured. Our /status page runs live health checks every 60 seconds, and we inherit AWS SES's underlying availability. A formal SLA with credit-back is on the roadmap once we have public uptime history to back it.

Email reimagined.
Available today.

3,000 emails per month, free forever. No credit card. Set up in five minutes.