853 письма за 4 минуты
Именно столько времени ушло у меня на интеграцию Resend в первый проект. От установки пакета до первого успешно отправленного письма в инбокс. Для сравнения: последняя настройка SendGrid заняла три часа и потребовала двух обращений в поддержку. Почувствуйте разницу.
Resend — это email API, спроектированный в 2023 году, а не в 2003. Его создали люди, которые настраивали почтовые сервисы годами и знали каждую боль: спам-рейтинги, DKIM, SPF, DMARC, bounce rate, шаблоны, которые не рендерятся в Outlook… И они решили каждую из этих проблем.
Архитектура: меньше — значит лучше
Resend не пытается быть маркетинговой платформой. Здесь нет конструктора писем с drag-and-drop, нет списков рассылок, нет A/B-тестирования. Есть ровно то, что нужно разработчику для транзакционных писем: API для отправки, вебхуки для статусов доставки, логи и шаблоны.
Поверхность API минимальна:
import { Resend } from 'resend';
const resend = new Resend('re_...');
await resend.emails.send({
from: 'hello@myapp.com',
to: 'user@example.com',
subject: 'Добро пожаловать!',
html: '<h1>Привет!</h1>'
});Три строчки кода. Письмо отправлено. Вы получаете ID сообщения, по которому можно отследить статус через вебхук или запрос к API.
React Email: главный убийца фич
Главная история Resend — это не сам API, а React Email. Библиотека, позволяющая верстать письма на React-компонентах. Звучит странно? А работает потрясающе.
Вы пишете компонент, используя знакомые JSX, props и стили:
import { Button, Html } from "@react-email/components";
export function WelcomeEmail({ name }: { name: string }) {
return (
<Html>
<h1>Привет, {name}!</h1>
<Button href="https://myapp.com">Войти</Button>
</Html>
);
}Запускаете dev-сервер — и получаете live-превью письма в браузере. Меняете что-то — видите результат мгновенно. Больше никакого слепого шаблонизирования с Handlebars и надежды, что в Gmail письмо не развалится.
Resend и React Email созданы одними людьми и интегрированы на глубинном уровне. Вы можете отправить React-компонент напрямую через Resend API без промежуточной компиляции в HTML:
await resend.emails.send({
from: 'hello@myapp.com',
to: 'user@example.com',
subject: 'Добро пожаловать!',
react: WelcomeEmail({ name: 'Иван' }),
});Resend сам скомпилирует компонент в совместимый HTML. Это настолько удобно, что после такого опыта возвращаться к строковым шаблонам — больно.
Доставляемость: то, ради чего всё затевалось
Красивый API ничего не стоит, если письма попадают в спам. У Resend с этим порядок. Они автоматически настраивают SPF и DKIM для вашего домена, предоставляют понятную инструкцию по DMARC, прогревают новые домены и следят за репутацией IP.
Вот что они делают из коробки:
- Автоматический DKIM — подписывают письма вашим доменным ключом
- Dedicated IP на платных планах — ваша репутация не зависит от соседей
- Suppression list — автоматическая блокировка отправки на адреса, пожаловавшиеся на спам
- Bounce handling — жёсткие и мягкие баунсы обрабатываются и логируются
- Open & click tracking — опционально, без лишнего JS в теле письма
Мой опыт: за полгода использования на трёх проектах 0 попаданий в спам на Gmail, Outlook и Яндекс.Почте. Доставляемость на уровне 99.2%.
Разработческий опыт
SDK доступен для JavaScript/TypeScript, Python, PHP, Ruby, Go, Elixir и даже cURL. Документация минималистична, но содержит всё нужное.
Вебхуки приходят мгновенно: email.delivered, email.opened, email.clicked, email.bounced, email.complained. Можно построить собственную аналитику или реагировать на баунсы в реальном времени.
Дашборд Resend простой и чистый. Показывает объёмы, статусы, ошибки. Можно искать письма по адресу получателя или ID. Не Grafana, но для оперативной отладки хватает.
Локальное тестирование — отдельная радость. Resend предоставляет тестовый режим: письма не отправляются реальным получателям, а попадают в лог на дашборде. Никаких Mailhog или Mailtrap, если не хотите. Но и интеграция с Mailtrap есть, если привыкли.
Тарифы и лимиты
Цены у Resend агрессивно низкие:
- Бесплатно — 100 писем в день, 3 000 в месяц. Достаточно для начала и тестирования.
- Starter — $20/мес, 50 000 писем. $0.40 за каждую следующую тысячу.
- Growth — $100/мес, 250 000 писем + dedicated IP.
- Enterprise — индивидуально.
Для сравнения: SendGrid начинает от $19.95 за 50 000 писем, но интерфейс и API ощущаются на десятилетие старше. Mailgun — от $35 за то же количество.
Когда Resend не подходит
Resend — не серебряная пуля. Есть сценарии, где лучше посмотреть в сторону:
- Маркетинговые рассылки на миллионы — Resend про транзакционные письма. Для массовых кампаний с сегментацией и A/B-тестами нужны Mailchimp, Klaviyo, SendGrid.
- Очень сложные шаблоны — React Email покрывает 95% дизайна писем, но сверхсложные макеты (многоколоночные адаптивные сетки с фоновыми изображениями в Outlook 2013) могут потребовать ручного HTML.
- On-premise — Resend только SaaS. Самостоятельно развернуть нельзя.
Вердикт
Resend вернул мне удовольствие от работы с email. То, что раньше было ритуалом на полдня с DKIM, SPF, тестовыми отправками и молитвами перед отправкой в production — теперь делается за пять минут и работает с первого раза.
Если вы стартап, который отправляет welcome-письма, уведомления, ссылки для сброса пароля, инвойсы — начните с Resend. Не потому что он дешёвый (хотя и это тоже). А потому что это первый email API, который был спроектирован людьми, знающими разницу между хорошим и плохим DX.
Попробуйте отправить одно письмо. Я почти уверен, что на SendGrid вы больше не вернётесь.