Wraps is a free, open source marketing & customer engagement project written in TypeScript and released under a custom open-source licence. It has 59 GitHub stars, 8 forks and 3 open issues, and was last pushed 6 hours ago. On this registry it ranks #49 of 50 tracked projects in Marketing & Customer Engagement, with 5 head-to-head comparisons available. It gained 1 stars over the last 6 tracked days.

What is Wraps?

What it is

Wraps is a code-first email platform that deploys its infrastructure into your own AWS account. It lives in the AWS and TypeScript ecosystem, and it ships as a command line tool, a set of SDKs, and an agent-facing MCP server. The core idea is that sending email does not require handing your data or your billing to a third party: one CLI command provisions the resources, and the application talks to them through a typed client. SMS through AWS End User Messaging, and CDN delivery over S3 and CloudFront, follow the same pattern.

The concrete problem it solves is the gap between raw AWS primitives and a usable sending stack. AWS SES requires domain verification, DKIM, SPF and DMARC configuration, plus event plumbing for bounces, opens, clicks and deliveries, plus storage for that event history. Wraps reduces that to npx @wraps.dev/cli email init, which creates SES configuration, EventBridge and SQS event tracking, a DynamoDB event history table with configurable retention, Lambda event processing and webhook handling, and least-privilege IAM roles with OIDC support for Vercel and AWS native identities. All resources are namespaced under wraps- and tagged ManagedBy: wraps-cli. The stated consequence is that the data never leaves your cloud, and the email keeps working if the vendor disappears.

Key capabilities

  • Deploys SES domain verification, DKIM, SPF and DMARC records through a single CLI command.
  • Provisions EventBridge and SQS for real-time event tracking of bounces, opens, clicks and deliveries.
  • Creates a DynamoDB table for email event history with configurable retention.
  • Generates Lambda functions for event processing and webhook handling.
  • Creates least-privilege IAM roles with OIDC support for Vercel and AWS native identity providers.
  • Provides a TypeScript SDK, @wraps.dev/email, with a WrapsEmail class and a send method returning a messageId.
  • Offers an MCP server hosted at https://wraps.dev/mcp or run locally with npx -y @wraps.dev/mcp for tools that send email, check setup status and read event logs.

Who uses it and how

  • Application developers who want to send transactional email from TypeScript without adopting a hosted email API vendor.
  • Teams that need bounce, open, click and delivery tracking wired into their own AWS account rather than a vendor dashboard.
  • SMS and CDN consumers, who use wraps sms init with @wraps.dev/sms and wraps cdn init for S3 and
project readme (upstream, from github) — read inline

Wraps

Deploy email infrastructure to your AWS account in under 2 minutes.

CLI version SDK version Tests License TypeScript


Quick Start

Prerequisites: Node.js 22+, AWS credentials configured

# Deploy email infrastructure to your AWS account
npx @wraps.dev/cli email init
# Install the SDK
pnpm add @wraps.dev/email
import { WrapsEmail } from '@wraps.dev/email';

const email = new WrapsEmail();

const { messageId } = await email.send({
  from: '[email protected]',
  to: '[email protected]',
  subject: 'Welcome!',
  html: '<h1>Hello from Wraps!</h1>',
});

console.log('Sent:', messageId);

For AI Agents

Using Claude Code, Cursor, or another AI assistant? Point it at:

  • wraps.dev/llms-full.txt — the complete Wraps documentation in one file (quickstarts, SDK reference, CLI reference, guides)
  • wraps.dev/llms.txt — agent-oriented index: when to use Wraps, quick command reference, links to everything
  • Claude Code skills — installable from wraps.dev/.well-known/skills/
  • MCP server — hosted at https://wraps.dev/mcp, or run locally with npx -y @wraps.dev/mcp for tools that send email, check setup status, and read event logs (reference)

Why Wraps?

  • You own it — Infrastructure deploys to your AWS account. Data never leaves your cloud. If we disappeared tomorrow, your email keeps working.
  • 2-minute setup — One CLI command. No AWS console spelunking. No 1000-word sandbox approval essays.
  • AWS pricing — Pay AWS directly for sending. No middleman markup. Scale affordably.
  • Real DX — TypeScript SDK, visual templates, real-time analytics, interactive dashboard.

What Gets Deployed

One command creates all of this in your AWS account:

  • SES — Domain verification, DKIM, SPF, DMARC
  • EventBridge + SQS — Real-time event tracking (bounces, opens, clicks, deliveries)
  • DynamoDB — Email event history with configurable retention
  • Lambda — Event processing and webhook handling
  • IAM — Least-privilege roles with OIDC support (Vercel, AWS native)

All resources are namespaced under wraps- (most as wraps-email-*) and tagged ManagedBy: wraps-cli.

Also Available

Service CLI SDK
SMS (AWS End User Messaging) wraps sms init @wraps.dev/sms
CDN (S3 + CloudFront) wraps cdn init
Email (Python) wraps-email
Platform API client @wraps.dev/client
MCP server @wraps.dev/mcp
CDK construct @wraps.dev/cdk
Pulumi component @wraps.dev/pulumi

Documentation

Community

License

AGPL-3.0 — see LICENSE for details. Enterprise features under commercial license. See wraps.dev for more information.

Frequently asked questions

Is Wraps free to use?

Wraps is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Wraps do?

Code-first email platform that deploys to your AWS

What is Wraps written in?

Wraps is primarily written in TypeScript. Its source is publicly available at https://github.com/wraps-team/wraps, and it has 59 GitHub stars.