Wraps Logo
Open-source email infrastructure

Email infrastructure, deployed to your own AWS.

Wraps provisions SES, DynamoDB, and Lambda into your AWS account with one command. Send from your app or your agent, and pay AWS directly at $0.10 per 1,000 emails.

~38s
median first deploy
$0.10
per 1k emails, at AWS cost
0
credentials we store
Deploying to us-east-1...
✓ SES identity verified (acme.com)
✓ DKIM, SPF, DMARC configured
✓ Event tracking pipeline deployed
✓ Analytics tables created
✓ Bounce & complaint handlers active
Infrastructure deployed in 38s
Ready to send. Run: wraps email status

Why teams run email on Wraps

Code you can review

Templates and workflows live in your repo. Roll back a bad send in a pull request.

Type-safe end to end

Typed SDK, typed templates, typed workflows. Errors surface at build, not in inboxes.

No more email tickets

Engineers own the code, marketers own the content, both ship through one pipeline.

Runs in your account

Your SES, your DynamoDB, your domain reputation. The bill comes from AWS, not us.

Built for Agents Too

Agents write TypeScript and open PRs. Your agent ships what your team ships.

The platform

One command stands up the whole sending stack.

Wraps deploys SES, DynamoDB, Lambda, EventBridge, and scoped IAM roles into your AWS account. Every event streams to tables you own — query them yourself, or watch them in the dashboard.

  • One-command deploy

    Run wraps email init and the full stack is production-ready in under two minutes.

  • TypeScript-first SDK

    wraps.emails.send() — full type inference, no boilerplate, no wrappers.

  • Reputation protection

    Bounces and complaints are tracked automatically; suppression prevents re-sends.

  • Zero stored credentials

    Access is an OIDC-federated IAM role. Your AWS keys never leave your account.

TypeScript SDK

Send an email. That's the whole API.

One import, one client, one call. Events stream to DynamoDB in your account — query them yourself or use the dashboard.

TypeScriptsrc/emails/welcome.ts
// Install: npm i @wraps.dev/emailimport { WrapsEmail } from '@wraps.dev/email';const email = new WrapsEmail();await email.emails.send({  from: 'hello@acme.com',  to: user.email,  subject: 'Welcome to Acme',  react: <WelcomeEmail name={user.name} />,});
The math

What you pay everywhere else, versus AWS cost.

Wraps + SESResendSendGridPostmark
100k emails / month$10(SES)$35$89.95$126
Your data, your AWSYesNoNoNo
Open sourceAGPL-3.0NoNoNo
Typed SDK + templatesYesYesNoNo
Templates-as-code in PRsYesYesNoNo
Product tour

Everything that happens after you hit send.

01One-command deploySES, DynamoDB, Lambda in 38s
02Broadcastscompose once, send to thousands
03Audience segments
04Templates as code
05Workflows
06Live analytics
07Every send, tracked
Pricing

You pay for the platform. AWS handles the sending.

Free to start, no credit card. Sending costs go straight to AWS at $0.10/1K emails.

Free forever

Free

Get started — no credit card required

$0
you pay AWS directly
  • Dashboard + AI template editor
  • 5K tracked events/mo
  • 1 workflow
  • Unlimited contacts
  • CLI + TypeScript SDK
  • 10 AI template generations/mo
Get Started

Starter

For developers shipping their first integration

$19
per month
  • 50K tracked events/mo
  • Unlimited workflows
  • React templates + AI editor
  • Topics, segments & broadcasts
  • Unlimited team members
  • Email support
Subscribe
Most popular

Growth

For teams where developers and marketers ship together

$79
per month
  • 250K tracked events/mo
  • Then $0.50/1K tracked events
  • Everything in Starter, plus:
  • AI workflow generation
  • 3 AWS accounts
  • Priority support (24hr)
Subscribe

Scale

For high-volume teams with multiple AWS accounts

$199
per month
  • 1M tracked events/mo
  • Then $0.15/1K tracked events
  • Everything in Growth, plus:
  • Behavioral segments
  • 1K AI generations/mo
  • Unlimited AWS accounts
  • SSO + SCIM provisioning
  • Priority support + SLA
Subscribe

Need custom limits or on-prem deployment? Contact us for Enterprise

What are tracked events?

You emit an event, and Wraps does the rest: triggers workflows, builds segments, runs automations on your AWS.

TypeScriptevents.ts
await wraps.track('order.completed', {  contactEmail: 'jane@acme.co',  properties: { orderId: '123', plan: 'growth' },})

Sending emails and storing contacts is always free. Opens, clicks, and deliveries don't count either.

AWS costs are separate

You pay AWS directly for sending at $0.10 per 1,000 emails plus infrastructure (~$2-5/mo). The infrastructure lives in your account, so you can leave anytime and keep everything.

Calculate Your Costs
FAQ

Questions? We've got answers.

Still have questions? Contact support

Get started

Your infrastructure. Your data. Your AWS bill.

Deploy in one command. Cancel anytime.

No credit cardInfrastructure stays if you cancelOpen source