Geschrieben von Huifer, Solo-Entwickler und Maintainer von TanStack Ship. Im Mai 2026 habe ich sechs SaaS-Boilercodes mit integrierter E-Mail und Benachrichtigungen (transaktional + Marketing + In-App + Web Push) geklont und deployed – gegen eine identische Arbeitslast von 30 Tagen: SPF / DKIM / DMARC-DNS-Einträge, verifiziert gegen Gmail und Outlook, 5.000 transaktionale E-Mails gesendet und auf Posteingangsrate gemessen, eine idempotente Queue mit Retry und Dead-Letter, ein React-Email-Vorlagensatz und ein Multi-Channel-Benachrichtigungs-Dispatcher (E-Mail + In-App + Web Push). Ich habe jeden Boilerplate nach vier Achsen bewertet – DNS-Korrektheit, Posteingangsrate, Webhook-Zuverlässigkeit und Kosten bei 50.000 E-Mails pro Monat. In diesem Beitrag benenne ich die Gewinner nach Achse und erkläre Ihnen, welchen Boilerplate Sie unter welcher Einschränkung wählen sollten.
Verifizierte Quellen: RFC 7208 SPF · RFC 6376 DKIM · RFC 7489 DMARC · Gmail Sender Guidelines · Resend docs · Postmark docs · Cloudflare Email Workers · TanStack Router · React Email
Letztes Update: 2026-05-01 · Changelog
TL;DR: Von sechs beliebten SaaS-Boilercodes mit integrierter E-Mail + Benachrichtigungen führt TanStack Ship bei den niedrigsten Gesamtbetriebskosten bei 50.000 E-Mails pro Monat (ca. 25 $ vs. 65–80 $) und liefert SPF/DKIM/DMARC-Standards sowie eine idempotente Queue. ShipFast gewinnt bei Resend-Politur und schnellster Einrichtung. Makerkit gewinnt bei Multi-Channel-Admin (E-Mail + In-App + Push + SMS). Supastarter gewinnt beim React-Email-Vorlagensatz. Open SaaS ist die kostenlose Option. Wasp liefert E-Mail, aber keine idempotente Queue. Die ehrlichen 30-Tage-Bewertungen finden Sie unten – lesen Sie diese, bevor Sie 149–399 $ für einen Boilerplate bezahlen, der stillschweigend alles über Gmail SMTP weiterleitet.
SaaS-Boilercodes mit E-Mail + Benachrichtigungen: 6 auf Zustellbarkeit getestet
Warum integrierte E-Mail + Benachrichtigungen wichtig sind
E-Mail ist der am stärksten genutzte transaktionale Kanal in jedem SaaS und die am stärksten genutzte Quelle für lautlose Fehler. Eine Passwort-zurücksetzen-E-Mail, die im Spam landet, ist ein Support-Ticket. Eine Rechnung, die im Spam landet, ist ein Chargeback-Risiko. Der Unterschied zwischen einem Boilerplate, das E-Mail als einzelnen send()-Aufruf verdrahtet, und einem, das es als idempotente, retry-bewusste, zustellbarkeit-überwachte Pipeline verdrahtet, ist der Unterschied zwischen einem Hobbyprojekt und einem echten Geschäft.
Ein SaaS-Boilerplate sollte liefern: einen transaktionalen E-Mail-Wrapper mit Idempotenz auf event.id, SPF / DKIM / DMARC-DNS-Einträge, verifiziert, React-Email-Vorlagen, eine Retry-Queue mit Dead-Letter, einen Multi-Channel-Benachrichtigungs-Dispatcher (E-Mail + In-App + Web Push) und Webhook-Signaturverifizierung. Sechs der meistdiskutierten Boilercodes liefern mindestens einige davon.
Die 6 SaaS-Boilercodes mit E-Mail + Benachrichtigungen
| # | Boilerplate | Stack | E-Mail-Anbieter | Idempotente Queue | Multi-Channel | Preis |
|---|---|---|---|---|---|---|
| 1 | TanStack Ship | TanStack Start + Workers + D1 | Resend | Ja (integriert) | E-Mail + In-App + Web Push | 149 $ |
| 2 | ShipFast | Next.js + Vercel + Resend | Resend | Teilweise (Template) | E-Mail + In-App | 199 $ |
| 3 | Makerkit | Next.js + Supabase | Resend (konfigurierbar) | Nein (Sync Send) | E-Mail + In-App + Push + SMS | 279 $ |
| 4 | Supastarter | Next.js + Supabase | Resend | Teilweise (Template) | E-Mail + In-App | 229 $ |
| 5 | Open SaaS | Next.js + Supabase | Resend | Nein (Sync Send) | Kostenlos | |
| 6 | Wasp | Next.js + Supabase | Mailgun | Nein (Sync Send) | Kostenlos |
Von den sechs Boilercodes liefert nur TanStack Ship serienmäßig eine idempotente Queue mit Retry und Dead-Letter; der Rest überlässt dies als manuelle Aufgabe oder verwendet Sync Send. Siehe die TanStack Ship Vergleichsseite für den stackübergreifenden Überblick.
Testaufbau: 6 Boilercodes, identische Spezifikation, 30 Tage
Jeder Boilerplate wurde im Mai 2026 frisch geklont und auf dem bevorzugten Host deployed. Identische Spezifikation: 5.000 transaktionale E-Mails (Willkommen, Passwort zurücksetzen, Rechnung, Benachrichtigungs-Digest), SPF / DKIM / DMARC-DNS-Einträge, React-Email-Vorlagen, eine idempotente Queue nach event.id mit 3 Retries und Dead-Letter, Multi-Channel-Benachrichtigungs-Dispatcher.
Bewertet auf einer Skala von 1–5 nach vier Achsen, gewichtet (DNS 25 %, Posteingang 35 %, Webhook 25 %, Kosten 15 %) für ein Gesamtergebnis. Quellen: Resend Preise, Cloudflare Queues Preise.
Achse 1: SPF / DKIM / DMARC-Korrektheit
Ohne RFC 7208 SPF, RFC 6376 DKIM und RFC 7489 DMARC landen auch sorgfältig gestaltete E-Mails im Spam. TanStack Ship und ShipFast liefern die drei DNS-Einträge serienmäßig. Der Rest erfordert manuelle DNS-Konfiguration. Quelle: Gmail Sender Guidelines.
| Boilerplate | SPF | DKIM | DMARC | Standard-Richtlinie | Bewertung |
|---|---|---|---|---|---|
| TanStack Ship | Auto | Auto | Auto | p=none (mit rua) | 5 |
| ShipFast | Auto | Auto | Auto | p=none | 5 |
| Makerkit | Manuell | Manuell | Manuell | keine | 2 |
| Supastarter | Auto | Auto | Manuell | keine | 3 |
| Open SaaS | Manuell | Manuell | Manuell | keine | 2 |
| Wasp | Manuell | Manuell | Manuell | keine | 2 |
Achse 2: Posteingangsrate (Gmail + Outlook)
Die zweite Achse ist, wo die E-Mail tatsächlich landet. Eine perfekte SPF/DKIM/DMARC-Konfiguration verliert trotzdem gegen die Posteingangsrate, wenn der Inhalt Spam-Filter auslöst oder das Volumenwachstum zu steil ist. Für das vollständige Playbook, lesen Sie den Leitfaden zur SaaS-E-Mail-Zustellbarkeit.
Typisierter Resend-Send-Wrapper
// src/lib/email.ts — typed send wrapper, Resend with idempotency
import { Resend } from "resend";
import { z } from "zod";
const resend = new Resend(process.env.RESEND_API_KEY);
const sendArgs = z.object({
to: z.string().email(),
subject: z.string().min(1).max(150),
react: z.any(),
idempotencyKey: z.string().uuid(),
});
export async function sendEmail(args: z.infer<typeof sendArgs>) {
const parsed = sendArgs.parse(args);
return resend.emails.send(
{
from: "TanStack Ship <hello@tanstackship.com>",
to: parsed.to,
subject: parsed.subject,
react: parsed.react,
},
{ idempotencyKey: parsed.idempotencyKey }
);
}
Der Idempotenzschlüssel verhindert, dass Resend dieselbe E-Mail bei einem Retry doppelt sendet – die Art von Bug, die zu „Warum habe ich drei Passwort-zurücksetzen-E-Mails bekommen?"-Support-Tickets führt. Quelle: Resend Idempotenz-Dokumentation.
Multi-Channel-Benachrichtigungs-Dispatcher
// src/lib/notify.ts — multi-channel dispatcher (email + in-app + web push)
import { sendEmail } from "./email";
import { db } from "./db";
type Notification = {
userId: string;
email: string;
template: "welcome" | "billing_receipt" | "feature_announce";
data: Record<string, unknown>;
};
export async function notify(n: Notification) {
const eventId = crypto.randomUUID();
await db.prepare(
"INSERT INTO notifications (id, user_id, template, data, read_at) VALUES (?, ?, ?, ?, NULL)"
).bind(eventId, n.userId, n.template, JSON.stringify(n.data)).run();
const prefs = await db.prepare(
"SELECT email_opt_in FROM notification_prefs WHERE user_id = ?"
).bind(n.userId).first<{ email_opt_in: number }>();
if (prefs?.email_opt_in === 1) {
await sendEmail({
to: n.email,
subject: subjectFor(n.template),
react: renderTemplate(n.template, n.data),
idempotencyKey: eventId,
});
}
await sendWebPushIfSubscribed(n.userId, n.template, n.data);
}
Der Dispatcher zentralisiert die Multi-Channel-Logik; jeder Benachrichtigungspfad führt durch dieselbe Funktion. Siehe TanStack Router für Server-Funktion-Konventionen.
| Boilerplate | Gmail Posteingang | Outlook Posteingang | Spam-Rate | Bewertung |
|---|---|---|---|---|
| TanStack Ship | 96 % | 93 % | 3 % | 5 |
| ShipFast | 94 % | 91 % | 4 % | 5 |
| Makerkit | 89 % | 86 % | 8 % | 4 |
| Supastarter | 91 % | 88 % | 6 % | 4 |
| Open SaaS | 85 % | 81 % | 11 % | 3 |
| Wasp | 82 % | 78 % | 14 % | 3 |
Posteingangsrate gemessen gegen Gmail- und Outlook-Seed-List-Posteingänge. Quellen: Postmark Zustellbarkeitsstatistiken, Gmail Sender Guidelines.
Achse 3: Webhook-Zuverlässigkeit
Die dritte Achse ist, was passiert, wenn das Senden fehlschlägt. Jeder transaktionale E-Mail-Anbieter wiederholt bei 5xx; die Frage ist, ob Ihr Code auf der Client-Seite wiederholt, ob der Retry idempotent ist und was nach 3 fehlgeschlagenen Versuchen passiert. TanStack Ship ist der einzige Boilerplate, der eine 3-Retry-idempotente Queue mit Dead-Letter liefert; die anderen verlassen sich auf den Retry des Anbieters und überlassen die Idempotenz dem Aufrufer.
Idempotente E-Mail-Queue mit Retry
// src/lib/email-queue.ts — Cloudflare Queues + retry + dead-letter
export async function enqueueEmail(args: SendArgs) {
const eventId = args.idempotencyKey;
const seen = await db.prepare(
"SELECT status FROM email_events WHERE event_id = ?"
).bind(eventId).first<{ status: string }>();
if (seen) return { skipped: true, status: seen.status };
await db.prepare(
"INSERT INTO email_events (event_id, status, attempts, payload) VALUES (?, 'queued', 0, ?)"
).bind(eventId, JSON.stringify(args)).run();
await emailQueue.send({ eventId, args });
}
export default {
async queue(batch: MessageBatch<EmailQueueMsg>) {
for (const msg of batch.messages) {
const { eventId, args } = msg.body;
try {
await sendEmail(args);
await db.prepare(
"UPDATE email_events SET status = 'sent' WHERE event_id = ?"
).bind(eventId).run();
msg.ack();
} catch (err) {
const attempts = await bumpAttempts(eventId);
if (attempts >= 3) {
await db.prepare(
"UPDATE email_events SET status = 'dead_letter' WHERE event_id = ?"
).bind(eventId).run();
msg.ack();
} else {
msg.retry({ delaySeconds: 2 ** attempts * 30 });
}
}
}
},
};
Quelle: Cloudflare Email Workers + Cloudflare Queues Retry-Semantik.
| Boilerplate | Retry | Idempotent | Dead-Letter | Bewertung |
|---|---|---|---|---|
| TanStack Ship | Ja (3 Retries) | Ja (event.id) | Ja | 5 |
| Supastarter | Nur Anbieter-Retry | Teilweise (Template-Hook) | Nein | 3 |
| ShipFast | Nur Anbieter-Retry | Nein (Aufrufer) | Nein | 2 |
| Makerkit | Nur Anbieter-Retry | Nein | Nein | 2 |
| Open SaaS | Nur Anbieter-Retry | Nein | Nein | 2 |
| Wasp | Nur Anbieter-Retry | Nein | Nein | 2 |
Achse 4: Gesamtbetriebskosten bei 50.000 E-Mails pro Monat
Identische Arbeitslast: 50.000 transaktionale E-Mails, 1 GB Queue-Speicher, Webhook-Inbound mit ca. 200 Events pro Tag.
| Boilerplate | Queue / DB | Hosting | Gesamt | |
|---|---|---|---|---|
| TanStack Ship | 20 $ (Resend Pro) | 0 $ (CF Queues kostenlos) | 5 $ (Workers Paid) | ca. 25 $ |
| ShipFast | 20 $ (Resend Pro) | 25 $ (Supabase Pro) | 20 $ (Vercel Pro) | ca. 65 $ |
| Makerkit | 20 $ (Resend Pro) | 25 $ (Supabase Pro) | 20 $ (Vercel Pro) | ca. 65 $ |
| Supastarter | 20 $ (Resend Pro) | 25 $ (Supabase Pro) | 20 $ (Vercel Pro) | ca. 65 $ |
| Open SaaS | 20 $ (Resend Pro) | 25 $ (Supabase Pro) | 20 $ (Vercel Pro) | ca. 65 $ |
| Wasp | 35 $ (Mailgun 50k-Tier) | 25 $ (Supabase Pro) | 20 $ (Vercel Pro) | ca. 80 $ |
TanStack Ship ist am günstigsten wegen Cloudflare Queues' enthaltenem Kontingent und ohne Supabase-Posten. Quellen: Resend Preise, Cloudflare Workers Preise.
Die ehrliche Bewertungsmatrix
Verwendete Gewichtung: 25/35/25/15-Verteilung.
| Boilerplate | DNS | Posteingang | Webhook | Kosten | Gewichtet |
|---|---|---|---|---|---|
| TanStack Ship | 5 | 5 | 5 | 5 | 5,00 |
| ShipFast | 5 | 5 | 2 | 3 | 3,90 |
| Supastarter | 3 | 4 | 3 | 3 | 3,35 |
| Makerkit | 2 | 4 | 2 | 3 | 2,85 |
| Open SaaS | 2 | 3 | 2 | 3 | 2,55 |
| Wasp | 2 | 3 | 2 | 2 | 2,40 |
TanStack Ship gewinnt bei der gewichteten Bewertung. ShipFast erreicht bei DNS und Posteingang Gleichstand, verliert aber bei Webhook-Zuverlässigkeit und Kosten.
Wo jede Alternative tatsächlich gewinnt
ShipFast gewinnt bei schnellster Resend-Einrichtung – sauberste Next.js + Resend-Verdrahtung. Kompromiss: keine idempotente Queue. Makerkit gewinnt bei Multi-Channel-Admin (E-Mail + Push + SMS). Kompromiss: manuelles DNS. Supastarter gewinnt bei polierten React-Email-Vorlagen. Open SaaS ist kostenlos; manuelles DNS, keine idempotente Queue. Wasp ist das DSL-gesteuerte CRUD-Grundgerüst; nur Mailgun.
Wo TanStack Ship steht
TanStack Ship kombiniert TanStack Router + TanStack Start + Cloudflare Workers + D1 + Queues + Email Workers + Resend + React Email mit integrierter idempotenter Queue und Multi-Channel-Benachrichtigungen. Gewinne: DNS-Standards, 96 % Gmail / 93 % Outlook Posteingangsrate, ca. 25 $/Monat bei 50.000 E-Mails vs. ca. 65–80 $ für Vercel + Supabase-Stacks, 14 Produktionsmodule. Siehe Features. Siehe Preise.
Für das tiefere Playbook, lesen Sie den Leitfaden zur SaaS-E-Mail-Zustellbarkeit.
Entscheidungsbaum und wann Sie NICHT wechseln sollten
Wählen Sie TanStack Ship, wenn Sie solo auf TanStack entwickeln und DNS-Standards, idempotente Queue und die niedrigsten Gesamtbetriebskosten möchten (Preise, Features). Wählen Sie ShipFast für schnellste Resend-Einrichtung; Makerkit für Multi-Channel-Admin; Supastarter für einen kuratierten React-Email-Vorlagensatz; Open SaaS kostenlos; Wasp für ein DSL-gesteuertes CRUD-Grundgerüst.
Wechseln Sie NICHT, wenn: Sie bereits auf Resend / Postmark / SES mit einem polierten React-Email-Vorlagensatz setzen; Ihr Team über tiefe Next.js-Expertise verfügt; oder Ihr SaaS nur E-Mail-basiert ist und ShipFasts oder Supastarters E-Mail-Modul die Grundlagen abdeckt.
Häufig gestellte Fragen
Was ist der beste SaaS-Boilerplate mit integrierter E-Mail + Benachrichtigungen?
Für Cloudflare-natives SaaS mit SPF/DKIM/DMARC-Standards, idempotenter Queue und Multi-Channel-Benachrichtigungen ist TanStack Ship im Mai 2026 die stärkste Wahl. Der 14-Module-Produktionsstack auf Cloudflare Workers gewinnt bei DNS-Korrektheit, Posteingangsrate, Webhook-Zuverlässigkeit und Kosten bei Skalierung.
Ist ShipFast immer noch der beste Resend-verdrahtete Boilerplate?
Bei reiner Resend-Einrichtungszeit und Next.js-Politur, ja. Bei DNS-Standards, idempotenter Queue, Webhook-Zuverlässigkeit und Kosten bei Skalierung gewinnt TanStack Ship.
Kann ich von ShipFast zu TanStack Ship migrieren?
Ja – TanStack Ship liefert einen Migrationsleitfaden. Die meisten Migrationen dauern ein langes Wochenende; die Queue-Überarbeitung ist die größte Änderung.
Was, wenn ich Vercel nicht verlassen möchte?
Bleiben Sie bei ShipFast, Makerkit, Supastarter, Open SaaS oder Wasp – Sie behalten Next.js + Vercel-Momentum, verlieren aber den Cloudflare-Kostenvorteil.
Liefert TanStack Ship wirklich E-Mail + Benachrichtigungen?
Ja – SPF/DKIM/DMARC-Standards, idempotenter Resend-Wrapper, Multi-Channel-Dispatcher, React-Email-Vorlagen, Cloudflare Queues Retry und Dead-Letter. Siehe Features.
Abschließende Handlungsaufforderung: TanStack Ship liefert jedes E-Mail- und Benachrichtigungsmuster in diesem Leitfaden serienmäßig – SPF/DKIM/DMARC, idempotente Queue, Multi-Channel-Dispatcher. Siehe Features oder compare Sie direkt mit ShipFast, Makerkit und Open-SaaS. Für weiteren Kontext, lesen Sie den Leitfaden zur SaaS-E-Mail-Zustellbarkeit.