1

Creá tu cuenta y verificá tu dominioSign up and verify your domain

El tier gratuito da 5.000 emails/mes y 200/día. No hace falta tarjeta. Verificás el dominio con los mismos registros DKIM/SPF/DMARC que ya tenés en Resend (los reusamos cuando es posible).Free tier gives 5,000/mo, 200/day. No card needed. Verify your domain using the same DKIM/SPF/DMARC records you already have at Resend (we reuse where possible).

Crear cuenta Sign up
2

Instalá el SDK drop-inInstall the drop-in SDK

Es el cliente Resend con el base URL apuntando a Mailstorm. Mismo nombre de clase, mismos métodos, mismas firmas.It's the Resend client with the base URL pointed at Mailstorm. Same class name, same methods, same signatures.

npm install @mailstorm/resend
3

Cambiá un importChange one import

Esto es toda la migración. Tu código existente sigue funcionando.That's the whole migration. Your existing code keeps working.

import { Resend } from "resend"import { Resend } from "@mailstorm/resend"
4

Cambiá tu API keySwap your API key

Generá una key en el dashboard (ms_test_* para sandbox, ms_live_* para producción). Reemplazá RESEND_API_KEY en tu env por MAILSTORM_API_KEY.Generate a key in the dashboard (ms_test_* for sandbox, ms_live_* for production). Replace RESEND_API_KEY in your env with MAILSTORM_API_KEY.

RESEND_API_KEY=re_xxxxxxxxxxxMAILSTORM_API_KEY=ms_live_xxxxxxxxxxx
5

Probá en sandbox primeroTest in sandbox first

Una key ms_test_* captura el email sin enviarlo. Usalo para verificar que tu integración compila y devuelve un id antes de pasar a live.An ms_test_* key captures the email without sending. Use it to verify your integration compiles and returns an id before going live.

const { data, error } = await resend.emails.send({ from: "you@yourdomain.com", to: "user@example.com", subject: "Hello", html: "<p>Hi</p>", }); console.log(data?.id); // → email id, captured not sent
!

Webhooks: cambiá una URL Webhooks: change one URL

Si tenías webhooks configurados en Resend (delivered, bounced, complained, opened, clicked), creá los mismos en el dashboard de Mailstorm con tu endpoint actual. Mismos nombres de evento, mismas estructuras de payload. La firma HMAC también es compatible — solo cambia el header header (Resend-SignatureX-Mailstorm-Signature). If you had webhooks configured in Resend (delivered, bounced, complained, opened, clicked), create the same ones in Mailstorm's dashboard pointing at your existing endpoint. Same event names, same payload shapes. HMAC signatures are compatible too — only the header changes (Resend-SignatureX-Mailstorm-Signature).

Compatibilidad Compatibility

Qué funciona drop-in en v0.1 What works drop-in in v0.1

Honestos: la versión 0.1 cubre el 90% de los usos transaccionales. Lo que falta tiene fecha en el roadmap. Honest answer: v0.1 covers 90% of transactional usage. What's missing has a roadmap date.

MétodoMethod EstadoStatus NotasNotes
resend.emails.send() ✓ Drop-in Acepta to string o arrayAccepts to as string or array
resend.emails.create() ✓ Drop-in Alias de send()Alias of send()
resend.emails.get(id) ✓ Drop-in Retorna shape Resend (object, last_event)Returns Resend shape (object, last_event)
resend.batch.send() ✓ Drop-in Hasta 100 emails/batchUp to 100 emails/batch
resend.emails.update() ○ Phase 7 Schedule-send: stub que retorna error claroSchedule-send: stub returns clear error
resend.emails.cancel() ○ Phase 7 Schedule-send: stub que retorna error claroSchedule-send: stub returns clear error
resend.domains.* ~ Use @mailstorm/sdk Mismo dashboard, distinto SDK por ahoraSame dashboard, different SDK for now
resend.audiences.* ~ Use @mailstorm/sdk
resend.contacts.* ~ Use @mailstorm/sdk
resend.broadcasts.* ~ Use @mailstorm/sdk
resend.apiKeys.* ~ Use dashboard Generación de keys vía UIKey generation via UI
i

Diferencias chicas que importa saber Small differences worth knowing

Multi-recipient: v0.1 procesa el primer destinatario y descarta el resto. Si mandás a arrays con varios mails, abrí un issue y subimos prioridad. Attachments: aceptados en wire, no end-to-end todavía. Tags: aceptados y guardados, no surfaceados aún en analytics. Schedule-send: no implementado. Multi-recipient: v0.1 processes the first recipient only. If you send to arrays with multiple addresses, file an issue and we'll bump priority. Attachments: accepted on wire, not end-to-end yet. Tags: accepted and stored, not surfaced in analytics yet. Schedule-send: not implemented.

Verificación Verification

Modo dual-send (en construcción) Dual-send mode (coming soon)

Para los próximos 30 días post-launch vamos a ofrecer un modo de prueba: tu app envía a los dos a la vez (Resend + Mailstorm) por 7 días, comparás deliverability lado a lado, y migrás definitivamente cuando estés cómodo. Si querés acceso temprano, escribinos. For 30 days post-launch we're shipping a trial mode: your app sends to both providers (Resend + Mailstorm) for 7 days, you compare deliverability side-by-side, and you cut over when you're comfortable. Want early access? Get in touch.

Pedir acceso temprano Request early access

¿Listo para cambiar un import? Ready to change one import?

5.000 emails/mes gratis. Sin tarjeta. Sin reescribir tu código. 5,000 emails/mo free. No credit card. No code rewrite.

Crear cuenta gratis Create free account