TL;DR: Die ersten 100 zahlenden Kunden entscheiden darüber, ob Ihr SaaS überlebt. Dieses Framework gliedert den Akquise-Prozess in vier Phasen — Define, Reach, Convert, Retain — mit spezifischen Taktiken für jede Phase. Sie erfahren, wie Sie eine Kundengewinnungs-Pipeline mithilfe von Content-Marketing, Community-Engagement und Product-Led Growth aufbauen — ganz ohne Werbeanzeigen. Enthält ein vollständiges UTM-Tracking-Setup, Konvertierungsoptimierungsmuster für Landingpages und eine Empfehlungssystem-Architektur, die Kunden in Ihre Vertriebsmannschaft verwandelt.
Das Problem der ersten 100
Jeder SaaS-Gründer steht vor demselben Henne-Ei-Problem: Sie brauchen Kunden, um Ihr Produkt zu validieren, aber Sie brauchen ein validiertes Produkt, um Kunden zu gewinnen. Die Zahlen sind ernüchternd:
| Metrik | Wert | Quelle |
|---|---|---|
| SaaS-Startups, die vor 100 Kunden scheitern | ~60% | CB Insights |
| Durchschnittliche Zeit bis zu den ersten 100 Kunden (bootstrapped) | 6-12 Monate | Baremetrics |
| Akquisekosten (erste 100, bootstrapped) | $50-500 | OpenView |
| Hauptkanal für die ersten 100 Kunden | Gründergeführter Vertrieb & Content | SaaS Labs |
| Startups, die vor Produkt-Markt-Fit Werbeanzeigen schalten | 70% brennen durch | Lenny Rachitsky |
Das folgende Framework geht von null Marketingbudget aus. Jede Taktik hier kostet Zeit, kein Geld — denn bis Sie 100 zahlende Kunden haben, ist Ihre einzige skalierbare Ressource Ihre eigene Arbeitskraft.
Phase 1: Define — Wer sind Ihre ersten 100?
Die meisten Gründer werfen ihr Netz zu weit aus. Die ersten 100 Kunden teilen bestimmte Eigenschaften:
ICP-Worksheet (Ideal Customer Profile)
// src/lib/marketing/icp.ts
interface ICP {
role: string
companySize: string
techStack: string[]
painPoint: string
budget: string
whereTheyHangOut: string[]
}
// Beispiel-ICP für TanStack Ship:
const icpTanStackShip: ICP = {
role: "Indie-Gründer / Full-Stack-Entwickler",
companySize: "1-10 Mitarbeiter",
techStack: ["React", "TypeScript", "Cloudflare", "Node.js"],
painPoint: "SaaS-Boilerplate von Grund auf zu bauen dauert 4-8 Wochen",
budget: "$200-500 für Tools pro Monat",
whereTheyHangOut: [
"r/reactjs", "r/webdev", "r/SaaS",
"Hacker News", "X/Twitter #buildinpublic",
"Indie Hackers", "React Discord",
],
}
Übung: Schreiben Sie die Namen von 10 echten Personen auf, die für Ihr Produkt bezahlen würden. Wenn Sie nicht 10 nennen können, ist Ihr ICP nicht spezifisch genug. Diese Personen werden Ihre ersten Ansprechpartner.
Die 100-Personen-Pipeline
Ziel 500 → Kontakt 200 → Demo 50 → Zahlend 100
(Outreach) (Antworten) (Konvertieren) (Aktiviert)
Jede Phase erfordert eine spezifische Konvertierungstaktik:
| Pipeline-Phase | Ziel | Konvertierungstaktik | Tool |
|---|---|---|---|
| Outreach | 500 identifizierte Interessenten | Personalisierte Cold-E-Mails/DMs | Clay + Apollo |
| Antworten | 200 Antworten | Wertorientierte Ansprache | Ihr Posteingang |
| Demo | 50 Demo-Gespräche | Problem-bewusstes Pitch | Calendly |
| Zahlend | 100 Kunden | Zeitlich begrenztes Gründerangebot | Stripe |
Phase 2: Reach — Die richtigen Personen erreichen
Taktik 1: Community-First Content (Höchste ROI für technisches SaaS)
Anstatt „kaufen Sie mein Produkt" zu verbreiten, bieten Sie echten Mehrwert in Communities, die Ihre ICP bereits frequentieren:
// src/lib/marketing/content-strategy.ts
const contentPlan = [
{
platform: "r/reactjs",
format: "Tutorial",
topic: "So implementieren Sie dateibasiertes Routing mit TanStack Router",
callToAction: "TanStack Ship als vollständigen Starter erwähnen",
frequency: "1x pro Woche",
},
{
platform: "Hacker News",
format: "Show HN",
topic: "Show HN: Ich habe einen SaaS-Starter mit TanStack Start + Cloudflare Workers gebaut",
callToAction: "Direkter Link zur Landingpage",
frequency: "Beim Launch + große Updates",
},
{
platform: "X/Twitter",
format: "Build in public",
topic: "Täglicher Fortschritt bei SaaS-Features, Umsatz, Nutzer",
callToAction: "Link in Bio + Profil",
frequency: "Täglich",
},
{
platform: "Indie Hackers",
format: "Interview / Meilenstein",
topic: "Wie ich mit TanStack Ship $1k MRR erreicht habe",
callToAction: "Link zum Produkt",
frequency: "Monatlich",
},
]
Dieser Content-Plan stellt sicher, dass Sie konsequent dort präsent sind, wo sich Ihre ICP aufhält. Jedes Content-Stück erfüllt einen doppelten Zweck: Es bietet echten Mehrwert für die Community und führt gleichzeitig natürlich Ihr Produkt als Lösung für das diskutierte Problem ein.
Taktik 2: Gründergeführte Cold-Outreach
Personalisierte Cold-E-Mails funktionieren noch immer, wenn sie richtig gemacht werden:
// Vorlage: Hochwertige Cold-E-Mail
const coldEmailTemplate = `Betreff: Kurze Frage zu ${prospect.tool}
Hey ${prospect.firstName},
ich habe gesehen, dass Sie ${prospect.project} mit ${prospect.techStack} gebaut haben.
Ich arbeite an [Ihr Produkt] — einer [Ein-Zeilen-Wertversprechen]. Da Sie bereits ${sharedInterest} nutzen, würde ich mich über Ihr Feedback freuen.
Kein Verkaufsgespräch, nur 10 Minuten, um Ihnen zu zeigen, was ich baue, und ehrliche Meinungen zu erhalten.
Hätten Sie diese Woche Zeit für ein kurzes Gespräch?
Beste Grüße,
${yourName}`
Metriken aus 500 Cold-E-Mails (Branchen-Benchmarks):
- Öffnungsrate: 45-60%
- Antwortrate: 10-20%
- Demo gebucht: 3-5%
- Kunde konvertiert: 1-2%
Taktik 3: Content-Marketing mit SEO-Moats
Erstellen Sie Content, der für Long-Tail-Keywords rankt, nach denen Ihre ICP sucht. Für ein TanStack-basiertes SaaS sind das:
| Keyword | Suchvolumen | Wettbewerb | Content-Typ |
|---|---|---|---|
| "TanStack Start Tutorial" | 2.400/Monat | Niedrig | Tutorial |
| "Cloudflare Workers SSR" | 1.800/Monat | Niedrig-Mittel | Guide |
| "Wie man Solo ein SaaS baut" | 3.200/Monat | Mittel | Framework-Beitrag |
| "SaaS Boilerplate Vergleich" | 1.200/Monat | Mittel | Vergleich |
Phase 3: Convert — Interesse in Umsatz verwandeln
Landingpage-Konvertierungsarchitektur
// src/components/marketing/HeroSection.tsx
export function HeroSection() {
return (
<section className="max-w-4xl mx-auto text-center py-20">
{/* 1. Problem-bewusste Headline */}
<h1 className="text-5xl font-bold mb-4">
Shippen Sie Ihr SaaS in Wochen, nicht Monaten
</h1>
{/* 2. Spezifisches Wertversprechen */}
<p className="text-xl text-gray-600 mb-8">
TanStack Ship bietet Ihnen einen produktionsreifen SaaS-Starter mit
Authentifizierung, Abrechnung, UTM-Tracking und E-Mail-Kampagnen —
damit Sie sich auf Ihre einzigartige Produktlogik konzentrieren können.
</p>
{/* 3. Social Proof */}
<div className="flex justify-center gap-8 mb-12">
<div className="text-center">
<div className="text-3xl font-bold">50+</div>
<div className="text-sm text-gray-500">Early Adopters</div>
</div>
<div className="text-center">
<div className="text-3xl font-bold">4+</div>
<div className="text-sm text-gray-500">Wochen gespart</div>
</div>
<div className="text-center">
<div className="text-3xl font-bold">100%</div>
<div className="text-sm text-gray-500">TypeScript</div>
</div>
</div>
{/* 4. Primäre CTA */}
<div className="flex justify-center gap-4">
<Link
to="/pricing"
className="bg-blue-600 text-white px-8 py-3 rounded-lg text-lg font-semibold hover:bg-blue-700"
>
Jetzt starten →
</Link>
<Link
to="/blog/tanstack-start-end-to-end-tutorial"
className="border border-gray-300 px-8 py-3 rounded-lg text-lg font-semibold hover:bg-gray-50"
>
Tutorial lesen
</Link>
</div>
</section>
)
}
Diese Hero-Section folgt einem bewährten Konvertierungsmuster: Problem-bewusste Headline → spezifisches Wertversprechen → Social Proof (Zahlen) → klare CTA mit sekundärem Link zu Bildungscontent. Jedes Element baut auf dem vorherigen auf, um Zögern zu reduzieren.
Konvertierungsoptimierte Preisgestaltungsseite
Das Tracking, welche Preispläne potenzielle Kunden ansehen — und von welcher UTM-Quelle sie kamen — hilft Ihnen zu verstehen, welche Kanäle hochintentionalen Traffic generieren. Diese Server-Funktion protokolliert jeden Preisenseiten-Aufruf mit seinen Attributionsdaten:
export const trackPricingView = createServerFn({ method: "POST" }).handler(
async ({ plan, utmSource }: { plan: string; utmSource?: string }) => {
await env.DB.prepare(
`INSERT INTO conversion_events
(event_type, plan, utm_source, page_url, timestamp)
VALUES ('pricing_view', ?, ?, ?, unixepoch())`
).bind(plan, utmSource ?? "direct", getCurrentUrl())
.run()
}
)
Mit diesen Daten können Sie Konvertierungsraten nach Kanal und nach Plan berechnen und so Ihr Marketingbudget auf die Kanäle konzentrieren, die Kunden anziehen, die bereit sind, für höherwertige Pläne zu bezahlen.
Gründer-Rabatt-Strategie
Für die ersten 100 Kunden verwenden Sie einen gestaffelten Rabatt, der Dringlichkeit schafft, ohne Ihr Produkt zu entwerten:
| Kunden gewonnen | Rabatt | Begründung |
|---|---|---|
| 1-25 | 40% dauerhaft | Maximaler Anreiz für frühes Feedback |
| 26-50 | 30% im Jahresabo | Noch großzügig, Momentum aufbauen |
| 51-75 | 20% im Jahresabo | Wachsendes Vertrauen, weniger Rabatt nötig |
| 76-100 | 10% im Jahresabo | Fast zum Vollpreis |
| 100+ | Vollpreis | Marktvalidierung erreicht |
Phase 4: Retain — Die ersten 100 halten und erweitern
Churn bei den ersten 100 Kunden ist tödlich — wenn 20% kündigen, brauchen Sie 20 neue Kunden, nur um gleichzubleiben. Konzentrieren Sie sich auf Activation, nicht nur auf Akquise.
Activation-Metriken-Dashboard
-- Akquisitions-Events pro Nutzer verfolgen
CREATE TABLE activation_events (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
event_type TEXT NOT NULL CHECK (
event_type IN (
'signed_up', 'completed_onboarding',
'created_first_project', 'invited_team_member',
'connected_payment', 'deployed_to_production'
)
),
occurred_at INTEGER NOT NULL DEFAULT (unixepoch()),
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- Activation-Status-View
CREATE VIEW user_activation_status AS
SELECT
u.id,
u.email,
u.created_at,
MAX(CASE WHEN ae.event_type = 'completed_onboarding' THEN 1 ELSE 0 END) as onboarded,
MAX(CASE WHEN ae.event_type = 'created_first_project' THEN 1 ELSE 0 END) as created_project,
MAX(CASE WHEN ae.event_type = 'deployed_to_production' THEN 1 ELSE 0 END) as deployed,
CASE
WHEN MAX(ae.event_type = 'deployed_to_production') THEN 'Vollständig aktiviert'
WHEN MAX(ae.event_type = 'created_first_project') THEN 'Erkundung'
WHEN MAX(ae.event_type = 'completed_onboarding') THEN 'Eingewiesen'
ELSE 'Feststeckend'
END as activation_stage
FROM users u
LEFT JOIN activation_events ae ON ae.user_id = u.id
GROUP BY u.id;
Wöchentliche Retention-E-Mail-Sequenz
// src/lib/email/retention.ts
const retentionSequence = [
{
day: 1,
subject: "Willkommen bei TanStack Ship — Ihr erstes Projekt",
content: "Schritt-für-Schritt-Anleitung zum Deployment Ihrer ersten App",
cta: "Jetzt deployen",
},
{
day: 3,
subject: "Tipp: Authentifizierung ist bereits eingerichtet",
content: "So passen Sie den Auth-Flow für Ihre Marke an",
cta: "Auth-Docs ansehen",
},
{
day: 7,
subject: "35% der Nutzer übersehen dieses Feature (UTM-Tracking)",
content: "So verfolgen Sie jeden Kundengewinnungskanal",
cta: "UTM einrichten",
},
{
day: 14,
subject: "Sie nutzen TanStack Ship seit 2 Wochen",
content: "Hier ist, was Sie bisher gebaut haben + was Sie möglicherweise verpasst haben",
cta: "Fortschritt ansehen",
},
{
day: 30,
subject: "Ein Monat — wie können wir helfen?",
content: "Persönliche Nachfrage vom Gründer",
cta: "Call buchen",
},
]
Die strukturierte E-Mail-Sequenz führt neue Nutzer vom Signup durch Activation bis zur vollständigen Produktadoption. Jede Nachricht konzentriert sich auf eine einzelne Aktion oder Funktion, reduziert Überforderung und erhöht die Wahrscheinlichkeit, dass Nutzer jeden Schritt abschließen.
Die NPS + Churn-Prävention-Schleife
// Score-basierte Intervention
export async function handleNpsResponse(
userId: string,
score: number,
feedback: string
) {
if (score >= 9) {
// Promoter → Um Empfehlung bitten
await triggerReferralPrompt(userId)
} else if (score <= 6) {
// Detractor → Sofortige Gründeransprache
await notifyFounder(userId, feedback)
await scheduleRecoveryCall(userId)
}
await env.DB.prepare(
`INSERT INTO nps_responses (user_id, score, feedback, responded_at)
VALUES (?, ?, ?, unixepoch())`
).bind(userId, score, feedback).run()
}
Dieses NPS-basierte Interventionssystem behandelt Promoter (Score 9-10) als Empfehlungschancen und Detractors (Score 0-6) als Recovery-Chancen. Die zentrale Erkenntnis ist, dass ein zeitnaher Gründer-Ansprache-Call einen Detractor in einen treuen Kunden verwandeln kann — viele Churn-Risiken sind eigentlich nur unbeantwortete Fragen.
Alles mit UTM-Attribution verfolgen
Sie können nicht optimieren, was Sie nicht messen. Richten Sie UTM-Tracking ab Tag eins ein:
// src/lib/marketing/utm.ts
import { useSearchParams } from "@tanstack/react-router"
export function useUtmCapture() {
const [searchParams] = useSearchParams()
const utmData = {
source: searchParams.get("utm_source") ?? "direct",
medium: searchParams.get("utm_medium") ?? "none",
campaign: searchParams.get("utm_campaign") ?? "none",
term: searchParams.get("utm_term") ?? "none",
content: searchParams.get("utm_content") ?? "none",
}
// UTM-Parameter sitzungsübergreifend speichern
useEffect(() => {
if (utmData.source !== "direct") {
localStorage.setItem("utm_data", JSON.stringify(utmData))
trackUtmVisit(utmData) // Serverseitiges Tracking
}
}, [searchParams])
return utmData
}
Attributionstabelle, die zeigt, welche Kanäle Ihre ersten 100 Kunden generieren:
| Kanal | % der ersten 100 | Kosten | Konvertierungsrate | Zeit bis zur ersten Zahlung |
|---|---|---|---|---|
| Content-Marketing (Blog) | 30% | Nur Zeit | 2-5% | 14-30 Tage |
| Community (Reddit/HN) | 25% | Nur Zeit | 3-8% | 7-21 Tage |
| Gründer-Cold-Outreach | 20% | Nur Zeit | 1-3% | 3-14 Tage |
| Product-Led (viral/Referral) | 15% | Eingebaut | 5-15% | 1-7 Tage |
| Partnerschaften | 10% | Umsatzbeteiligung | 10-25% | 30-90 Tage |
Dashboard für die ersten 100 Kunden
Bauen Sie ein einfaches Dashboard, um Ihren Fortschritt in Echtzeit zu verfolgen:
CREATE VIEW first_100_dashboard AS
SELECT
COUNT(DISTINCT u.id) as total_users,
COUNT(DISTINCT CASE WHEN s.status = 'active' THEN u.id END) as paying_customers,
COUNT(DISTINCT CASE WHEN ae.event_type = 'deployed_to_production' THEN u.id END) as activated_users,
ROUND(AVG(CASE WHEN s.status = 'active' THEN s.mrr END), 2) as avg_mrr,
ROUND(SUM(CASE WHEN s.status = 'active' THEN s.mrr END), 2) as total_mrr,
ROUND(
100.0 * COUNT(DISTINCT CASE WHEN s.status = 'active' THEN u.id END) /
NULLIF(COUNT(DISTINCT u.id), 0), 1
) as conversion_rate,
ROUND(
100.0 - 100.0 * COUNT(DISTINCT CASE WHEN s.status = 'canceled' THEN u.id END) /
NULLIF(COUNT(DISTINCT CASE WHEN s.status IN ('active', 'canceled') THEN u.id END), 0), 1
) as retention_rate
FROM users u
LEFT JOIN subscriptions s ON s.user_id = u.id
LEFT JOIN activation_events ae ON ae.user_id = u.id;
Diese Dashboard-View gibt Ihnen eine Echtzeit-Übersicht über Ihre Kundengewinnungs-Pipeline: Wie viele Nutzer haben sich angemeldet, wie viele bezahlen, wie viele sind aktiviert (haben den „Aha-Moment" erreicht) und wie hoch ist Ihr durchschnittlicher Umsatz pro Kunde. Das wöchentliche Tracking dieser Metriken zeigt Ihnen, ob Ihre Wachstumsmaschine funktioniert.
Umsetzungszeitplan: 90 Tage bis zu 100 Kunden
| Woche | Fokus | Schlüsselaktivitäten | Ziel-Kunden |
|---|---|---|---|
| 1-2 | Define & Build | ICP finalisieren, Outreach-Liste mit 500 vorbereiten, 2 SEO-Artikel veröffentlichen | 0 |
| 3-4 | Reach (Cold) | 250 personalisierte Cold-E-Mails senden, in 5 Communities posten | 5-10 |
| 5-6 | Reach (Content) | 2 weitere Artikel, 15 Social-Posts, 5 Foren-Antworten veröffentlichen | 15-25 |
| 7-8 | Convert | 20-30 Demos, Gründer-Rabatt launchen, Preisenseite optimieren | 30-45 |
| 9-10 | Referral | Empfehlungssystem aktivieren, Promoter um Vorstellungen bitten | 50-70 |
| 11-12 | Scale | Auf beste Kanäle setzen, basierend auf Feedback iterieren | 80-100 |
Fazit
Die ersten 100 zahlenden Kunden zu gewinnen, ist nicht eine Silberkugel — es geht um systematische Umsetzung über die vier Phasen des Wachstums-Frameworks:
- Define: Wissen Sie genau, wer Ihre ersten 100 Kunden sind, bevor Sie irgendetwas bauen
- Reach: Nutzen Sie Community-Content, personalisierte Ansprache und SEO, um sie zu erreichen, ohne Werbeanzeigen
- Convert: Bauen Sie eine konvertierungsoptimierte Landingpage, setzen Sie Gründer-Rabatte strategisch ein und verfolgen Sie jeden Touchpoint mit UTM
- Retain: Messen Sie Activation (nicht nur Signups), automatisieren Sie Retention-E-Mails und verwandeln Sie Promoter in Ihre Empfehlungsmaschine
Die Startups, die erfolgreich sind, haben nicht das beste Produkt oder die meiste Finanzierung. Sie sind diejenigen, die täglich mit ihren Nutzern sprechen, besessen iterieren und jeden Tag jede Metrik verfolgen.
Ihre ersten 100 Kunden sind da draußen. Sie suchen nach einer Lösung für das exakte Problem, das Sie lösen. Gehen Sie sie finden. Eine vollständige Anleitung zur Einrichtung Ihres Attributions-Trackings finden Sie im Vollständigen UTM-Attribution-Guide, und erfahren Sie, wie Sie Ihre glücklichsten Kunden mit unserem Empfehlungs-Belohnungssystem in eine Wachstumsmaschine verwandeln. Der E-Mail-Marketing-Automatisierung-Guide deckt die vollständige Sequenz vom Signup bis zum zahlenden Kunden ab, und der In 4 Wochen von Null zum MVP-Blueprint hilft Ihnen, Ihr Produkt zu bauen, während Sie dieses Wachstums-Framework umsetzen.