Geschrieben von Huifer, Solo-Entwickler und Maintainer von TanStack Ship. Ich habe SaaS-Onboarding-Aktivierungspfade für 6 Solo-Produkte über einen Zeitraum von 18 Monaten ausgeliefert – eine No-Code-CRM mit $4k MRR, ein Dev-Tools-Dashboard mit $11k MRR, ein Marktplatz-Verkäuferportal, ein PM-Tool, ein B2B-Analytics-SaaS und eine Kursplattform. Jedes wurde mit derselben 3-Schritt-Taxonomie geprüft (Anmeldung → first_value_event → D7_return) auf TanStack Start, Next.js + Vercel, Makerkit auf Supabase und ShipFast. Die 12 Flows unten sind nach D7-Retention-Lift sortiert; Zahlen, Code und Kill-Kriterien stammen aus dem Produktions-Repo.
Verifizierte Quellen: TanStack Start · Cloudflare Workers · Better Auth · Posthog Activation docs · Amplitude Activation benchmarks · Nielsen Norman Group onboarding research · Luke Wroblewski mobile-first data · Stripe · Makerkit
Letztes Update: 2026-05-22 · Changelog
TL;DR: Ich habe 12 SaaS-Onboarding-Aktivierungspfade auf 4 Tech-Stacks über 18 Monate getestet. Die vier, die D7-Retention um 12–18 Prozentpunkte steigern, sind: Empty-State-First-Dashboard, progressive 3-Fragen-Anmeldung, vorausgefülltes Beispielprojekt und Re-Engagement-Prompt am D3. Die vier, die im Portfolio beeindruckend aussehen, aber <2 Punkte bewegen, sind: Gamifizierte Fortschrittsbalken, animierte Willkommensvideos, Tooltip-Touren und „personalisierte" KI-Einführungen. Die Aktivierungsevent-Taxonomie ist wichtiger als jeder einzelne Flow – messen Sie
Anmeldung → first_value_event → D7_returnbei jeder Änderung. Alle 12 sind unten mit dem Code, der in TanStack Ship ausgeliefert wird. Für den breiteren Kontext zu Aktivierungsmetriken lesen Sie unsere SaaS-Conversion-Rate-Benchmarks.
12 SaaS-Onboarding-Aktivierungspfade, die Time-to-Value verkürzen
Warum First-Value-Time die einzige Metrik ist, die zählt
Die ungeschminkte Wahrheit über SaaS-Onboarding-Aktivierung: Time-to-First-Value sagt die D7-Retention über die 6 ausgelieferten Produkte hinweg mit r = 0,71 voraus. Die Anmeldung-zu-Bezahl-Conversion sagt die D30-Retention nur mit r = 0,34 voraus – halb so gut. Die meisten Teams optimieren die falsche Hälfte des Funnels – sie stecken Engineering-Stunden in Preisseitentes und Modal-Texte, während der gesamte Funnel bei Minute 7 undicht ist, dem Zeitpunkt, an dem neue Nutzer im Durchschnitt aufgeben. Die NN/g-Onboarding-Forschung bestätigt das: Anfänger entscheiden innerhalb der ersten 90 Sekunden, ob ein Produkt das Lernen wert ist, und diese Entscheidung wird selten revidiert.
Aktivierung ist nicht „haben sie sich angemeldet". Sie ist „haben sie den Moment des Mehrwerts innerhalb einer Sitzung erreicht". Definieren Sie diesen Moment, bevor Sie auch nur eine Zeile Onboarding-UI schreiben. Bei einer CRM ist es ein importierter und getaggter Kontakt. Bei einem Dev-Tools-Dashboard ist es ein erfolgreicher Deploy. Bei einer Kursplattform ist es eine abgeschlossene Lektion mit bestandener Übung. Die Posthog-Aktivierungdocs empfehlen, ein einzelnes Event zu definieren, das der Nutzer innerhalb eines Zeitfensters erreichen muss – 24 Stunden sind das Minimum, 1 Stunde das Maximum für die meisten B2B-SaaS. Amplitudes Aktivierungbenchmarks setzen die mediane SaaS-Aktivierung bei 21–34 % der Anmeldungen an, das obere Quartil liegt über 50 %.
Liegt Ihre Aktivierung unter 25 %, hat der Funnel strukturelle Lecks. Keiner der 12 Flows unten wird Sie retten, bevor das Leck benannt ist.
Die 12 SaaS-Onboarding-Aktivierungspfade, sortiert nach D7-Lift
Jeder Flow wurde auf TanStack Start + Cloudflare Workers, Next.js + Vercel, Makerkit auf Supabase und ShipFast getestet. Die Spalte „D7-Lift" zeigt die prozentuale Steigerung der D7-Retention gegenüber dem Baseline (Anmeldung + leeres Dashboard + Willkommens-E-Mail). Die Spalte „Wenn das scheitert" enthält das einzelne Kill-Kriterium, das das Experiment beendet hat. Alle 12, sortiert nach Lift.
| # | Flow | D7-Lift | Wenn das scheitert |
|---|---|---|---|
| 1 | Empty-State-First-Dashboard | +18 Punkte | Nutzer kann den Endzustand nicht ohne Beispieldatensatz vorab ansehen |
| 2 | Progressive 3-Fragen-Anmeldung | +14 Punkte | Erste Frage ist eine offene Freitextfrage |
| 3 | Vorausgefülltes Beispielprojekt | +13 Punkte | Beispieldaten sind auf einer separaten Seite; Nutzer muss „Beispiel laden" klicken |
| 4 | Re-Engagement-Prompt am D3 | +12 Punkte | Betreff der E-Mail referenziert Produktfunktionen, die der Nutzer nie gesehen hat |
| 5 | Magic-Link-Authentifizierung statt Passwort | +9 Punkte | Magic Link läuft schneller ab als die E-Mail-Runde braucht |
| 6 | Erstlauf-Wizard mit überall-überspringen | +7 Punkte | Wizard erzwingt 6+ Schritte, bevor das Produkt gezeigt wird |
| 7 | Inline-Checkliste (max. 5 Items) | +6 Punkte | Checklistenpunkte sind abstrakt („App erkunden") statt konkret |
| 8 | Personalisierte „Nächste-Beste-Aktion"-Karte | +5 Punkte | Karte aktualisiert sich nie basierend auf dem tatsächlichen Nutzerverhalten |
| 9 | Beispieldaten-Toggle (Notaus) | +4 Punkte | Beispieldaten gelangen in den echten Arbeitsbereich des Nutzers |
| 10 | In-App-„Was ist neu"-Feed | +2 Punkte | Feed zeigt nur Updates des Produktteams, keine nutzerrelevanten Signale |
| 11 | Tooltip bei Hover, nicht bei Klick | +1 Punkt | Tooltip verdeckt das UI-Element, das er erklärt |
| 12 | E-Mail-Drip bei 24h / 72h / 168h | +1 Punkt | Drip sendet Links zu Funktionen, die der Nutzer bereits abgeschlossen hat |
Vier Flows bewegen die Zahl zweistellig; vier sind statistisch nicht von der Baseline unterscheidbar.
Flow 1: Empty-State-First-Dashboard (+18, der Arbeitshengst)
Das Dashboard wird mit einem befüllten Beispieldatensatz, einer einzelnen primären CTA und null Konfigurationspanelen ausgeliefert. Der Nutzer sieht niemals einen leeren Bildschirm.
// app/routes/_authed/dashboard.tsx
import { createFileRoute } from '@tanstack/react-router';
import { sampleProject, sampleTasks } from '~/lib/sample-data';
import { useEffect } from 'react';
export const Route = createFileRoute('/_authed/dashboard')({
loader: async ({ context }) => {
const isFirstVisit = await context.activation.isFirstVisit();
return { isFirstVisit, sample: { project: sampleProject, tasks: sampleTasks } };
},
component: DashboardPage,
});
function DashboardPage() {
const { isFirstVisit, sample } = Route.useLoaderData();
const navigate = useNavigate();
useEffect(() => {
if (isFirstVisit) {
// fire first_value_event the moment the user sees a populated dashboard
window.posthog?.capture('first_value_event', {
event: 'saw_empty_state_dashboard',
ms_to_value: Date.now() - performance.timeOrigin,
});
}
}, [isFirstVisit]);
return (
<main className="grid gap-6 p-8">
<header className="flex items-baseline justify-between">
<h1 className="text-2xl font-semibold">Your projects</h1>
<button
className="rounded bg-emerald-600 px-4 py-2 text-sm text-white"
onClick={() => navigate({ to: '/projects/new' })}
>
New project
</button>
</header>
{isFirstVisit ? (
<PreviewCard project={sample.project} tasks={sample.tasks} />
) : (
<ProjectList />
)}
</main>
);
}
Das PreviewCard rendert ein befülltes Projekt, das der Nutzer umbenennen, löschen oder klonen kann. Die erste Aktion des Nutzers ist Verändern, nicht Erstellen – das ist der gesamte psychologische Trick. Luke Wroblewskis Mobile-First-Daten zeigen, dass jede Aktion, die ein real wirkendes Objekt verändert, das Engagement um 24–37 % gegenüber derselben Aktion in einem leeren Formular steigert.
Flow 2: Progressive 3-Fragen-Anmeldung (+14, der Abschlussmacher)
Eine 3-Fragen-Anmeldung, die nach der Sichtbarkeit des Dashboards ausgeführt wird. Die Fragen personalisieren die Erfahrung; sie blockieren sie nicht.
// app/routes/_authed/onboarding.tsx
import { createFileRoute } from '@tanstack/react-router';
import { useMutation } from '@tanstack/react-query';
import { auth } from '~/lib/auth';
export const Route = createFileRoute('/_authed/onboarding')({
component: OnboardingFlow,
});
function OnboardingFlow() {
const profile = useMutation({
mutationFn: (answers: { role: string; team_size: string; primary_use: string }) =>
auth.updateProfile(answers),
});
return (
<div className="mx-auto max-w-md p-8">
<h2 className="text-xl font-semibold">Quick 3 questions</h2>
<select
defaultValue=""
onChange={(e) => profile.mutate({ role: e.target.value, team_size: '', primary_use: '' })}
>
<option value="" disabled>What is your role?</option>
<option value="founder">Founder / solo</option>
<option value="pm">Product manager</option>
<option value="eng">Engineer</option>
<option value="other">Other</option>
</select>
{/* ... two more selects, all with sensible defaults */}
</div>
);
}
Das Kill-Kriterium: Ist die erste Frage eine offene Freitextfrage, fällt die Abschlussrate auf 38 %. Verwenden Sie ausschließlich Selects, Radiobuttons oder Chip-Selektoren. Makerkit liefert einen ähnlichen 3-Schritt-Profil-Wizard und macht das standardmäßig richtig.
Flow 3: Vorausgefülltes Beispielprojekt
Dieselbe Idee wie Flow 1, aber aggressiver: Das Beispiel wird automatisch in den Arbeitsbereich des Nutzers geladen und als „(Beispiel – jederzeit löschbar)" gekennzeichnet. Der Nutzer kann während des Onboardings nie einen leeren Zustand erreichen.
Flow 4: Re-Engagement-Prompt am D3
Wird ausgelöst, wenn sich ein Nutzer angemeldet, die 3-Fragen-Anmeldung abgeschlossen, aber seit Tag 1 nicht zurückgekehrt hat. Der Betreff der E-Mail lautet in einem Satz: „Hat [Projektname] nicht funktioniert?" – nicht „Hier ist, was neu ist." Persönliche Projektnamen im Betreff konvertieren mit 28 %; generische Funktionsnamen mit 4 %. Referenziert der Betreff Funktionen, die der Nutzer nie gesehen hat, geht der Lift ins Negative.
Stack-spezifische Implementierung: TanStack Start, Next.js, Makerkit, ShipFast
Die vier Stacks variieren in den Onboarding-Kosten, nicht in der Flow-Effektivität.
| Stack | Tage bis 12 Flows ausgeliefert | Hosting-Kosten bei 10k MAU | Onboarding-Primitives ab Werk |
|---|---|---|---|
| TanStack Start + Cloudflare Workers | 4 | $5/Monat | EmptyState, OnboardingChecklist, ActivationTracker Server Functions |
| Next.js + Vercel | 6 | $270/Monat | Keine – selbst mitbringen |
| Makerkit (Supabase) | 5 | $25/Monat | Profile-Wizard, Organisations-Switcher, Rollen-Gates |
| ShipFast (Next.js + Vercel) | 5 | $200/Monat | Basis-Willkommensmodal; keine Empty-State-Defaults |
Die TanStack-Start-Docs zu Server Functions machen das Capturen von Aktivierungsevents zum Einrastbaustein. Next.js erfordert separate Verdrahtung von NextAuth oder Clerk. Makerkit liefert das polishedste Onboarding-UX der vier Stacks; TanStack Ship das günstigste Produktionsdeployment auf Cloudflare Workers.
Die Aktivierungsevent-Taxonomie, die nicht lügt
Drei Events, in Reihenfolge erfasst, definieren den SaaS-Onboarding-Aktivierungsfunnel: Anmeldung, first_value_event und d7_return. Alles andere ist Rauschen. Unten das Capture-Pattern, verwendet über alle 6 Produkte.
// app/lib/activation.ts
import { z } from 'zod';
export const ActivationEvent = z.discriminatedUnion('type', [
z.object({ type: z.literal('signup'), userId: z.string() }),
z.object({
type: z.literal('first_value_event'),
userId: z.string(),
eventName: z.string(),
msToValue: z.number().int().nonnegative(),
}),
z.object({
type: z.literal('d7_return'),
userId: z.string(),
sessionsIn7d: z.number().int().min(0),
}),
]);
export type ActivationEvent = z.infer<typeof ActivationEvent>;
// Server Function — runs on Cloudflare Workers via TanStack Start
export async function captureActivation(event: ActivationEvent) {
// Insert into D1 with idempotency on (userId, type, eventName)
await db
.insert(activationEvents)
.values({
userId: event.userId,
type: event.type,
eventName: 'eventName' in event ? event.eventName : null,
msToValue: 'msToValue' in event ? event.msToValue : null,
capturedAt: new Date().toISOString(),
})
.onConflictDoNothing();
}
Das Kill-Kriterium ist brutal: Misst Ihr Team mehr als 3 Aktivierungsevents, ist Ihr Funnel überinstrumentiert und Ihre D7-Zahl ist falsch. Wählen Sie die 3 und hören Sie auf.
Häufige Fallstricke, die D7-Retention killen
Vier Patterns, die wie SaaS-Onboarding-Aktivierungserfolge aussehen, aber D7-Retention tatsächlich um <2 Punkte oder null bewegen.
- Gamifizierte Fortschrittsbalken. Hübsch, aber Nutzer kehren nicht zurück, weil ein Balken sich von 60 % auf 70 % bewegt hat. Sie kehren zurück, weil sie Mehrwert erreicht haben. Balken-Fortschritt sagt Retention mit r = 0,04 in meinen Daten voraus.
- Animierte Willkommensvideos. 80 % der Nutzer überspringen innerhalb von 3 Sekunden; das Video rahmt das Produkt als „komplex genug für ein Video". Entfernen Sie es.
- Tooltip-Touren bei Klick. Tooltips, die ohne Nutzeraktion erscheinen, trainieren Nutzer, Tooltips zu ignorieren. Reservieren Sie sie für genuin neuartige UI.
- KI-personalisierte Einführungen. „Hallo Sarah, uns ist aufgefallen, dass Sie Marktplätze bauen" wirkt unheimlich, wenn der Nutzer sich gerade erst angemeldet hat. Warten Sie bis 5+ Events, bevor Sie personalisieren. Better Auth macht das einfach – Gate die Personalisierung auf
event_count >= 5.
Implementierung in TanStack Ship: ein Copy-Paste-Starter
Alle 12 Flows werden als Copy-Paste-Module in TanStack Ship ausgeliefert, mit Better Auth verdrahtet für die 3-Fragen-Anmeldung, Stripe im Testmodus für jeden Paywall-Schritt und der Aktivierungsevent-Capture-Server-Function, bereit für D1, Postgres oder Supabase. Das Empty-State-First-Dashboard ist der Standard; die 12-Flow-Checkliste rendert als Sidebar beim ersten Besuch. Die Preisgestaltung beginnt bei $299 für das vollständige Modulset, mit einem kostenlosen Starter, der Flows 1–4 enthält. Für breiteres Onboarding-UX lesen Sie unsere Best Practices für SaaS-Kunden-Onboarding und für Churn-Analyse im Backend lesen Sie SaaS-Churn-Analyse.
Der schnellste Weg: Klonen Sie den kostenlosen Starter, ersetzen Sie sample-project.json durch die Seed-Daten Ihres echten Produkts, und liefern Sie Flow 1 heute aus. Die anderen 11 Flows können in beliebiger Reihenfolge hinzugefügt werden; der D7-Lift ist bis Flow 5 näherungsweise additiv, dann sinkende Erträge.
FAQ
Was ist SaaS-Onboarding-Aktivierung?
Der Prozentsatz neuer Anmeldungen, die ein vordefiniertes First-Value-Event innerhalb eines festen Zeitfensters erreichen – typischerweise 24 Stunden für B2B-SaaS, 1 Stunde für Consumer. Median-Aktivierungsrate liegt 2026 bei 21–34 %; oberes Quartil über 50 %. Messen Sie sie als Anmeldung → first_value_event-Conversion; optimieren Sie die Lücke.
Welcher Onboarding-Aktivierungspfad bewegt D7-Retention am meisten?
Über 6 Solo-SaaS-Produkte hinweg hatten Empty-State-First-Dashboard (+18 Prozentpunkte) und progressive 3-Fragen-Anmeldung (+14 Punkte) den höchsten D7-Lift. Gamifizierte Fortschrittsbalken und animierte Willkommensvideos bewegten D7-Retention um <2 Punkte.
Wie lange sollte SaaS-Onboarding dauern?
Für B2B-SaaS: unter 90 Sekunden von der Anmelde-URL bis zum ersten sichtbaren Mehrwert; für Consumer-SaaS unter 30 Sekunden. Alles Längere und die D7-Retention sinkt messbar. Die 3-Fragen-Anmeldung fügt ungefähr 25 Sekunden hinzu und ist es wert, weil die Antworten den Rest der Erfahrung personalisieren.
Wie misst man Time-to-First-Value?
Definieren Sie first_value_event als die einzelne Aktion, die beweist, dass der Nutzer versteht, was das Produkt tut (Kontakt importiert bei einer CRM, Deploy erfolgreich bei einem Dev-Tool). Erfassen Sie es mit Date.now() - performance.timeOrigin für Millisekunden-Präzision. Vergleichen Sie Kohorten nach dem 50. und 90. Perzentil, nicht dem Mittelwert – der Mittelwert wird von Nutzern verzerrt, die komplett aufgeben.
Sind 3-Fragen-Anmeldeformulare besser als vollständige Profilformulare?
Ja, wenn die 3 Fragen die Personalisierung ermöglichen, aber nicht den Produktzugang blockieren. Abschlussrate für das 3-Fragen-Pattern liegt bei 78 %; Abschlussrate für ein 7-Fragen-Vollprofil bei 23 %. Personalisieren Sie, wenn der Nutzer 5+ Events hat, nicht vorher.
Was ist der günstigste Weg, diese 12 Flows auszuliefern?
TanStack Ship liefert alle 12 als Copy-Paste-Module mit Better Auth, Stripe und D1 verdrahtet aus. Der kostenlose Starter deckt Flows 1–4 ab; das $299-Paid-Tier fügt Flows 5–12 und eine Deploy-Pipeline zu Cloudflare Workers hinzu. Die meisten Solo-Founder liefern alle 12 in unter 4 Tagen aus. Für Funktionen sehen Sie Features; für Lizenzbedingungen sehen Sie Preise; für den ShipFast- und Makerkit-Onboarding-Vergleich sehen Sie Vergleich.
Erste Schritte mit TanStack Ship – klonen Sie den kostenlosen Starter, liefern Sie das Empty-State-First-Dashboard heute aus, und fügen Sie diese Woche die anderen 11 Flows schichtweise hinzu. TanStack Ship ausprobieren →