Resend vs SendGrid vs Postmark : quel service email pour votre SaaS ?
Comparatif honnête des trois services d'emails transactionnels pour un SaaS Next.js — DX, deliverability, prix, et le choix qu'on a fait pour HeartCo.
Pourquoi le choix du provider email compte vraiment
Les emails transactionnels sont la plomberie invisible de votre SaaS : confirmation d'inscription, reset de mot de passe, factures, notifications. Quand ils ne marchent pas, c'est silencieux — les utilisateurs ne reçoivent rien, ne se plaignent pas, et churn.
Le mauvais provider = 5-15% de vos emails en spam. Avec 10 000 utilisateurs actifs, ça fait 500 à 1500 personnes qui n'ont jamais reçu votre lien de validation. Vous payez l'acquisition, vous perdez la conversion.
Vue d'ensemble
| Critère | Resend | SendGrid | Postmark |
|---|---|---|---|
| Prix entrée | Gratuit jusqu'à 3k/mois | 19$/mois (50k) | 15$/mois (10k) |
| Prix à 100k emails/mois | 20$ | 90$ | 75$ |
| Templates React Email | ✅ natif | ❌ | ❌ |
| Deliverability moyenne | 98% | 95% | 99% |
| Setup DKIM/SPF | 3 clics | 8 étapes | 5 étapes |
| Webhooks | ✅ | ✅ | ✅ |
| Logs en clair | 90 jours | 7 jours | 45 jours |
| API SDK TypeScript | First class | Bonne | Correcte |
| Support FR (équipe) | ❌ | ❌ | ❌ |
Resend — Le challenger qui gagne en 2026
Resend a été créé par les fondateurs de React Email. C'est un service moderne, optimisé pour les SaaS Next.js, avec une DX qu'on n'avait jamais vue avant.
Setup en 30 secondes
// src/lib/email/resend.ts
import { Resend } from "resend";
import { env } from "~/env";
export const resend = new Resend(env.RESEND_API_KEY);Templates avec React Email
// src/emails/welcome.tsx
import {
Button,
Container,
Head,
Html,
Preview,
Section,
Text,
} from "@react-email/components";
interface WelcomeEmailProps {
userName: string;
loginUrl: string;
}
export default function WelcomeEmail({
userName,
loginUrl,
}: WelcomeEmailProps) {
return (
<Html>
<Head />
<Preview>Bienvenue sur HeartCo, {userName}</Preview>
<Container style={{ padding: "32px", fontFamily: "system-ui" }}>
<Section>
<Text>Salut {userName},</Text>
<Text>Ton compte HeartCo est prêt. Connecte-toi pour démarrer.</Text>
<Button
href={loginUrl}
style={{
background: "#6366f1",
color: "white",
padding: "12px 24px",
borderRadius: "8px",
}}
>
Accéder au dashboard
</Button>
</Section>
</Container>
</Html>
);
}Envoi depuis tRPC
import WelcomeEmail from "~/emails/welcome";
sendWelcome: protectedProcedure
.input(z.object({ userId: z.string() }))
.mutation(async ({ ctx, input }) => {
const user = await ctx.db.user.findFirstOrThrow({
where: { id: input.userId },
});
await resend.emails.send({
from: "HeartCo <hello@heartco.fr>",
to: user.email,
subject: `Bienvenue ${user.name}`,
react: WelcomeEmail({
userName: user.name,
loginUrl: `${env.NEXT_PUBLIC_URL}/dashboard`,
}),
});
}),Le bénéfice : un email est un composant React typé. Vous le testez en local dans le browser via react-email dev. Plus de templates HTML inline ni de Mailchimp WYSIWYG.
Limites de Resend
- Pas (encore) de scheduling natif → utilisez Inngest ou Vercel Cron
- Logs limités à 90 jours sur le plan payant
- Pas de support téléphone (Discord uniquement)
SendGrid — Le vétéran
SendGrid (Twilio) est le standard de l'industrie depuis 2015. Robuste, mais sur-dimensionné pour un SaaS qui commence.
Setup
import sgMail from "@sendgrid/mail";
sgMail.setApiKey(env.SENDGRID_API_KEY);
await sgMail.send({
to: user.email,
from: { email: "hello@yoursaas.com", name: "Your SaaS" },
subject: "Welcome",
templateId: "d-abc123", // Template Drag&Drop SendGrid
dynamicTemplateData: {
userName: user.name,
loginUrl: `${env.URL}/dashboard`,
},
});Pourquoi on l'a abandonné
- Templates dans une UI Drag&Drop → versioning impossible, pas de Git diff
- Setup DKIM/SPF tortueux (8 enregistrements DNS)
- Console UI lente et clunky
- 90$/mois à 100k emails — 4.5x plus cher que Resend
- Deliverability moyenne en baisse sur les domaines neufs depuis 2024
SendGrid reste pertinent si vous envoyez >5M d'emails/mois (capacité éprouvée) ou si votre stack est déjà Twilio.
Postmark — Le specialist deliverability
Postmark fait UNE chose et la fait mieux que tout le monde : le transactionnel. Pas de marketing emails, pas de campagnes — juste des emails qui arrivent.
Setup
import { ServerClient } from "postmark";
const postmark = new ServerClient(env.POSTMARK_API_KEY);
await postmark.sendEmailWithTemplate({
From: "hello@yoursaas.com",
To: user.email,
TemplateAlias: "welcome",
TemplateModel: {
user_name: user.name,
login_url: `${env.URL}/dashboard`,
},
});Pourquoi le considérer
- 99% de deliverability mesurée — le meilleur du marché
- IPs dédiées pour le transactionnel uniquement (pas de pollution marketing)
- Support DMARC strict
- Logs en clair pendant 45 jours
Pourquoi on a pas choisi Postmark
- Pas de React Email natif (vous compilez vos templates en MJML)
- Setup template plus lourd
- 75$/mois à 100k vs 20$ pour Resend
- Communauté plus petite, moins d'exemples Next.js
Le critère qui change tout : la deliverability
Resend annonce 98%, Postmark 99%, SendGrid 95%. Sur 100k emails par mois, ça fait :
- Postmark : 1 000 emails en spam
- Resend : 2 000 emails en spam
- SendGrid : 5 000 emails en spam
Si vos emails sont critiques (factures, alertes sécurité), 4 000 emails de différence par mois peuvent coûter cher en support.
Comment maximiser votre deliverability quel que soit le provider :
- Configurez DKIM + SPF + DMARC sur votre domaine d'envoi
- Utilisez un sous-domaine dédié (
mail.yoursaas.com, pas l'apex) - Préchauffez votre domaine progressivement (100 → 1k → 10k emails/jour)
- Surveillez vos taux de bounce et nettoyez votre liste
- Ne mélangez JAMAIS marketing et transactionnel sur la même IP
Notre choix pour HeartCo : Resend
// HeartCo Starter — config par défaut
// src/lib/email/index.ts
import { Resend } from "resend";
import WelcomeEmail from "~/emails/welcome";
import InvoiceEmail from "~/emails/invoice";
import ResetPasswordEmail from "~/emails/reset-password";
export const resend = new Resend(env.RESEND_API_KEY);
export const emailTemplates = {
welcome: WelcomeEmail,
invoice: InvoiceEmail,
resetPassword: ResetPasswordEmail,
} as const;Les raisons :
- DX imbattable — React Email + TypeScript natif
- Coût — 20$/mois pour 100k emails couvre 95% des SaaS en croissance
- Domain verification — 3 enregistrements DNS, vérification automatique
- Webhooks utiles —
email.delivered,email.bounced,email.complainedfaciles à brancher sur tRPC
Quand passer à Postmark
Si vous êtes dans une vertical ultra sensible aux délais d'arrivée (banque, santé, sécurité), passez à Postmark dès 10k emails/mois. Le 1% de deliverability en plus vaut chaque dollar.
Pour tous les autres SaaS B2B classiques, Resend reste le meilleur choix en 2026.
Récapitulatif décisionnel
| Si vous êtes... | Choisissez |
|---|---|
| Indie hacker / early-stage SaaS | Resend |
| SaaS Next.js avec besoin de templates React | Resend |
| Vertical critique (santé, banque, sécurité) | Postmark |
| Déjà sur Twilio Stack | SendGrid |
| Volume >5M emails/mois | SendGrid (capacité éprouvée) |
L'email n'est pas glamour, mais c'est l'une des décisions qui impacte le plus votre rétention. Investissez 1h à bien configurer, et oubliez le sujet pendant 2 ans.
Articles connexes
ShipFast vs HeartCo : quel boilerplate SaaS choisir en 2026 ?
Comparaison directe et honnête entre ShipFast et HeartCo — stack technique, features, prix, et pour quel type de projet chaque solution convient vraiment.
LireQuel boilerplate SaaS Next.js choisir en 2026 ? (comparatif complet)
ShipFast, MakerKit, SupaStarter, HeartCo... Le marché des boilerplates SaaS Next.js explose. Voici comment choisir en fonction de votre projet, votre stack et votre budget.
Lire