Qué es Resend
Resend es una API moderna para enviar emails. En vez de configurar servidores SMTP (Simple Mail Transfer Protocol -- el protocolo clásico para envío de correos) o lidiar con plataformas legacy, Resend te da un SDK limpio y una API REST para enviar emails transaccionales y de marketing desde tu aplicación.
Fue creada por Zeno Rocha, un desarrollador brasileño que también es el creador de React Email (una librería para construir templates de email con componentes de React). Resend nació de la frustración de trabajar con herramientas de email que fueron diseñadas hace 15 años y nunca evolucionaron.
Por qué Resend y no SendGrid, Mailgun o SES
| Resend | SendGrid | Mailgun | Amazon SES | |
|---|---|---|---|---|
| Developer experience | SDK moderno, tipado | SDK funcional pero verboso | API REST clásica | SDK complejo |
| Templates | React Email (componentes) | Editor visual (Handlebars) | Handlebars | No incluye |
| Setup | 5 minutos | 15-30 minutos | 15-30 minutos | 30-60 minutos |
| Dashboard | Limpio, logs claros | Sobrecargado | Funcional | Mínimo |
| Pricing | Transparente, por emails | Por emails + contactos | Por emails + validaciones | Por emails (muy barato) |
| Webhooks | Sí, integrados | Sí | Sí | Sí (via SNS) |
La diferencia principal es que Resend fue construido para desarrolladores desde el primer día. No es una plataforma de marketing que le agregó una API después. Es una API de email que funciona como esperas que funcione.
Cómo funciona
Tu App (Next.js, Node.js, etc.)
|
v
Resend SDK (npm: resend)
|
v
Resend API (REST)
|
v
Infraestructura de envío de Resend
|
v
Bandeja de entrada del destinatario
|
v
Webhooks te notifican (entregado, abierto, rebotado, etc.)Tu aplicación llama al SDK de Resend (o directamente a la API REST). Resend se encarga de todo lo demás: autenticación SPF/DKIM (protocolos que verifican que el email es legítimo y no spam), entrega del mensaje, tracking de aperturas y clics, y notificaciones via webhooks cuando algo pasa con el email.
Qué incluye Resend
Envío transaccional
Emails que tu aplicación envía automáticamente en respuesta a una acción del usuario: confirmación de cuenta, reset de contraseña, recibos de compra, notificaciones. Estos son el core de Resend.
Broadcasts (envíos masivos)
Emails de marketing o newsletters que envías a una lista de contactos. Puedes crearlos desde el dashboard o programáticamente via la API de Audiencias.
Dominios personalizados
Verificas tu dominio (por ejemplo tu-empresa.com) y envías emails desde direcciones como notificaciones@tu-empresa.com en vez de usar el dominio genérico de prueba.
Contactos y Audiencias
Gestión de listas de contactos organizadas en audiencias. Útil para newsletters y broadcasts.
Webhooks
Resend te notifica en tiempo real cuando un email es entregado, abierto, clicado, rebotado o marcado como spam. Configuras una URL en tu servidor y Resend envía un POST con los datos del evento.
Analytics
Métricas de envío, entrega, apertura y clics directamente en el dashboard. También puedes usar tags (etiquetas) para segmentar y filtrar analytics por tipo de email.
Plan gratuito y precios
Resend tiene un plan gratuito generoso para empezar:
| Free | Pro | Scale | |
|---|---|---|---|
| Precio | $0/mes | $20/mes | $90/mes |
| Emails/mes | 3,000 | 50,000 | 100,000 |
| Emails/día | 100 | Sin límite diario | Sin límite diario |
| Dominios | 1 personalizado | 10 | 100 |
| Webhooks | Limitados | Completos | Completos |
| Soporte | Comunidad | Prioritario | |
| Logs de emails | 1 día | 3 días | 7 días |
| Broadcasts | No | Sí | Sí |
El plan Free es suficiente para desarrollo
Con 3,000 emails al mes y 100 al día puedes desarrollar y probar tu integración sin problemas. Solo necesitas un plan de pago cuando vayas a producción con volumen real.
SDKs disponibles
Resend tiene SDKs oficiales para los lenguajes más usados:
| Lenguaje | Paquete | Instalación |
|---|---|---|
| Node.js / TypeScript | resend | npm install resend |
| Python | resend | pip install resend |
| Ruby | resend | gem install resend |
| PHP | resend/resend-php | composer require resend/resend-php |
| Go | resend-go | go get github.com/resend/resend-go/v2 |
| Java | resend-java | Maven/Gradle |
| Rust | resend-rs | cargo add resend-rs |
| .NET | Resend | dotnet add package Resend |
En esta documentación nos enfocamos en el SDK de Node.js/TypeScript porque es el más usado con Next.js, pero los conceptos aplican igual para cualquier lenguaje.
Requisitos previos
Para seguir esta documentación necesitas:
- Node.js 18+ instalado
- Conocimiento básico de TypeScript
- Una cuenta gratuita en resend.com
- Opcional: un proyecto de Next.js donde integrar Resend
Estructura de esta documentación
- Setup y API Key -- Crear cuenta, obtener credenciales, instalar SDK
- Enviar emails -- La función principal, parámetros, manejo de errores
- Opciones avanzadas -- Adjuntos, headers, tags, envío programado
- Emails en lote -- Envío batch para múltiples destinatarios
- React Email -- Templates con componentes de React