Web/Guru

SaaS-MVP entwickeln: Umfang, Mandantenfähigkeit, Abrechnung und der Stack, mit dem wir starten

SaaS-MVP entwickeln: Umfang auf eine bezahlte Aufgabe begrenzen, Mandantenmodell wählen, Abo-Abrechnung anbinden, bewährten Stack nutzen, mit Checkliste.

Veröffentlicht
Aktualisiert
October 13, 2026
Lesezeit
11 Min. Lesezeit
Geschrieben von
Webguru
SaaS-MVP entwickeln: Umfang, Mandantenfähigkeit, Abrechnung und der Stack, mit dem wir starten
/Auf dieser Seite01 / 11

Ein SaaS-MVP ist die kleinste Version eines Abo-Produkts, für die sich ein echter Kunde registrieren, mit der er die Hauptaufgabe erledigen und für die er bezahlen kann. Der Umfang ist schwerer festzulegen als bei einer einmaligen App, weil die Teile, die niemand sieht (Konten, Teams, Rollen, Abrechnung, Mandantentrennung), vom ersten Tag an funktionieren müssen. Dieser Leitfaden beschreibt den Prozess, nach dem wir SaaS-Produkte entwickeln: wie Sie den Umfang des MVP festlegen, wie Sie ein Mandantenmodell wählen, wie Sie die Abrechnung aufsetzen, mit welchem Tech-Stack wir starten und welche Checkliste vor dem Launch gilt. Dazu kommt ein kurzes Node.js-Beispiel für die Mandantentrennung.

Was ein SaaS-MVP enthalten muss

Ein normales MVP prüft eine Frage: Wollen die Leute das? Ein SaaS-MVP prüft zusätzlich eine zweite: Zahlt ein Unternehmen jeden Monat dafür? Diese zweite Frage bringt Anforderungen mit, die ein Prototyp auslassen kann.

  • Konten, die zu einer Organisation gehören. Geschäftskunden registrieren sich als Unternehmen, laden Kollegen ein und erwarten Rollen.
  • Mandantentrennung. Ein Kunde darf nie die Daten eines anderen Kunden sehen. Das ist eine Architekturentscheidung, und sie nachträglich einzubauen ist teuer.
  • Abrechnung. Tarife, Testphasen, Upgrades, fehlgeschlagene Zahlungen und Kündigungen. Jeder dieser Fälle ändert, was der Nutzer im Produkt tun kann.
  • Eine Admin-Ansicht für Sie. Sie müssen sehen, wer sich registriert hat, welchen Tarif er nutzt und wo er hängen geblieben ist.
  • Die eine Kernaufgabe. Die Funktion, für die der Kunde bezahlt, und zwar gut umgesetzt.

Alles andere kann warten. Die folgende Tabelle zeigt die Aufteilung, mit der wir den Umfang festlegen.

Im MVP umsetzenAuf später verschieben
Registrierung, Login, Passwort zurücksetzen, E-Mail-BestätigungSingle Sign-on (außer Ihre ersten Kunden verlangen es)
Organisationen, Einladungen, zwei oder drei RollenEigene Rollen und fein abgestufte Berechtigungen
Ein Kern-Workflow, durchgängigZweiter und dritter Workflow
Ein oder zwei Tarife, eine Testphase, KartenzahlungGutscheine, Jahresrechnungen, Reseller-Preise
Mandantentrennung und Protokollierung wichtiger AktionenAnpassungen pro Mandant und White-Labeling
Einfache interne Admin-Ansicht und ProduktanalyseReporting-Dashboards für Kunden

Den Umfang festlegen: eine Aufgabe, ein Käufer, ein bezahlter Tarif

Die meisten SaaS-MVPs, die sich in die Länge ziehen, haben mit einer Feature-Liste begonnen. Beginnen Sie mit einem Satz.

  1. Benennen Sie den Käufer. „Operations-Manager in Logistikunternehmen mit 20 bis 200 Mitarbeitenden“ ist ein Käufer. „Unternehmen“ ist keiner.
  2. Benennen Sie die Aufgabe. Schreiben Sie auf, was der Käufer heute ohne Ihr Produkt tut und welchen einen Schritt Sie ersetzen.
  3. Definieren Sie den bezahlten Moment. Legen Sie fest, was ein Kunde im bezahlten Tarif bekommt und in der Testphase nicht. Wenn Sie das nicht sagen können, ist der Tarif noch nicht fertig.
  4. Schreiben Sie den Pfad der ersten Sitzung auf. Listen Sie jeden Bildschirm von der Registrierung bis zum ersten nützlichen Ergebnis auf. Was nicht auf diesem Pfad liegt, kann gestrichen werden.
  5. Legen Sie den Launch-Test fest. Zum Beispiel: Fünf Unternehmen erledigen die Kernaufgabe in zwei Wochen zweimal, und drei davon hinterlegen eine Karte.
  6. Halten Sie fest, was nicht dazugehört. Bewahren Sie die Liste auf. Nach dem Launch wird sie zu Ihrer Roadmap.

Hängt die Kernaufgabe von einem Sprachmodell ab, legen Sie den Umfang des KI-Teils getrennt fest und testen Sie ihn zuerst. Das behandelt unser Leitfaden zur Entwicklung eines KI-MVP.

Das Mandantenmodell wählen, bevor Sie Code schreiben

Mandantenfähigkeit (Multi-Tenancy) bedeutet, dass sich viele Kunden ein laufendes Produkt teilen. Die AWS SaaS Lens beschreibt drei Modelle, und die Namen sind weit verbreitet.

ModellSo funktioniert esGeeignet fürDarauf achten
PoolAlle Mandanten teilen sich eine Datenbank und einen Satz Tabellen, jede Zeile trägt eine Mandanten-IDDie meisten MVPs: am günstigsten im Betrieb, am einfachsten zu deployenJede Abfrage muss auf den Mandanten begrenzt sein, ein vergessener Filter ist ein Datenleck
BridgeGemeinsame Anwendung, eigenes Schema oder eigene Datenbank pro MandantKunden, die eine stärkere Trennung verlangenMigrationen laufen einmal pro Mandant, mehr bewegliche Teile
SiloEin eigener Stack pro MandantRegulierte oder sehr große KundenHöchste Kosten und höchster Betriebsaufwand

Wir starten die meisten MVPs mit dem Pool-Modell und machen die Trennung zu einer Eigenschaft der Datenbank, nicht jeder einzelnen Abfrage. Die Row-Level Security von PostgreSQL leistet das: Sie aktivieren sie pro Tabelle und schreiben eine Richtlinie, und die Datenbank verweigert Zeilen anderer Mandanten, auch wenn der Anwendungscode einen Filter vergisst.

```sql
ALTER TABLE projects ENABLE ROW LEVEL SECURITY;

ALTER TABLE projects FORCE ROW LEVEL SECURITY;

CREATE POLICY tenant_isolation ON projects
USING (tenant_id = current_setting('app.tenant_id')::uuid);

```

Die Anwendung setzt dann für jede Anfrage den Mandanten innerhalb einer Transaktion. Hier ist eine kleine Hilfsfunktion mit node-postgres:

```js
import pg from "pg";

const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL });

// Führt work in einer Transaktion aus, in der jede Abfrage auf einen Mandanten begrenzt ist.
export async function withTenant(tenantId, work) {

const client = await pool.connect();

try {

await client.query("BEGIN");

// Das dritte Argument (true) lässt die Einstellung nur für diese Transaktion gelten.

await client.query("SELECT set_config('app.tenant_id', $1, true)", [tenantId]);

const result = await work(client);

await client.query("COMMIT");

return result;

} catch (err) {

await client.query("ROLLBACK");

throw err;

} finally {

client.release();

}

}

// Verwendung: Die Abfrage hat keinen Mandantenfilter und liefert trotzdem nur die Zeilen dieses Mandanten.
const projects = await withTenant(session.tenantId, (db) =>

db.query("SELECT id, name FROM projects ORDER BY created_at DESC")

);

```

Zwei Details sind wichtig. Die PostgreSQL-Dokumentation weist darauf hin, dass Tabelleneigentümer die Row-Level Security umgehen, sofern Sie nicht FORCE ROW LEVEL SECURITY verwenden, und dass Superuser sie immer umgehen. Die Anwendung sollte sich deshalb mit einer Rolle verbinden, die weder das eine noch das andere ist. Außerdem muss die Mandanten-ID aus der geprüften Sitzung auf dem Server stammen, nie aus einem Wert, den der Browser sendet.

Fehlerhafte Zugriffskontrolle (Broken Access Control) ist der erste Punkt der OWASP Top 10 (2021). In einem SaaS-Produkt ist ein Datenleck zwischen Mandanten die schädlichste Form davon. Deshalb behandeln wir die Trennung als Teil des MVP und schreiben automatisierte Tests, die sich als Mandant A anmelden und versuchen, die Datensätze von Mandant B zu lesen.

Abrechnung: Der Zahlungsanbieter ist die maßgebliche Quelle

Bei der Abrechnung verlieren SaaS-MVPs am häufigsten Zeit. Das Muster, das sich bewährt, ist einfach: Der Zahlungsanbieter führt den Status des Abonnements, und Ihr Produkt hält eine Kopie, die es über Webhooks aktualisiert.

  • Nutzen Sie gehostete Seiten. Stripe Checkout nimmt die Zahlung entgegen, und im Kundenportal können Kunden Karten aktualisieren, Tarife wechseln und kündigen. Diese Bildschirme bauen Sie nicht selbst.
  • Synchronisieren Sie über Webhooks. Der Abonnement-Leitfaden von Stripe nennt die Ereignisse, die Sie verarbeiten müssen, darunter checkout.session.completed, customer.subscription.updated, customer.subscription.deleted, invoice.paid und invoice.payment_failed.
  • Prüfen und deduplizieren Sie. Prüfen Sie die Signatur jedes Webhooks und speichern Sie die IDs verarbeiteter Ereignisse, denn Anbieter können dasselbe Ereignis mehrfach zustellen.
  • Steuern Sie Funktionen von einer Stelle aus. Halten Sie eine einzige Funktion vor, die aus gespeichertem Tarif und Status die Frage „Was darf diese Organisation?“ beantwortet. Verteilen Sie Tarifprüfungen nicht über den Code.
  • Legen Sie den Ablauf bei fehlgeschlagener Zahlung fest. Entscheiden Sie, was passiert, wenn eine Karte abgelehnt wird: wie lange der Zugang bestehen bleibt und was der Nutzer sieht.

Hängen Sie das Abonnement an die Organisation, nicht an die Person, die die Karte eingegeben hat. Menschen verlassen Unternehmen, das Konto sollte nicht mit ihnen gehen.

Der SaaS-Tech-Stack, mit dem wir starten

Ein unspektakulärer Standard sorgt dafür, dass das Budget in die Kernaufgabe fließt. Das ist unser Ausgangspunkt für ein webbasiertes SaaS-MVP in JavaScript und TypeScript.

SchichtStandardÄndern, wenn
App und APINext.js (App Router) mit TypeScriptSie vom ersten Tag an eine separate API für mobile Apps oder Partner brauchen
DatenbankPostgreSQL mit Row-Level SecurityDie Daten nicht relational sind, was bei Unternehmenssoftware selten ist
Authentifizierung und OrganisationenEin verwalteter Auth-Anbieter mit Organisationen und EinladungenKäufer von Anfang an SSO oder eine On-Premise-Identitätsverwaltung verlangen
AbrechnungStripe Checkout, Kundenportal und WebhooksSie nur Jahresverträge auf Rechnung verkaufen
HintergrundjobsEine verwaltete Queue oder geplante FunktionenJobs lange laufen oder eine strikte Reihenfolge brauchen
E-MailEin Dienst für Transaktions-E-Mails mit Ihrer eigenen DomainSie den Versand aus Compliance-Gründen selbst betreiben müssen
HostingEine verwaltete Plattform mit Preview-DeploymentsVorgaben zum Speicherort der Daten eine bestimmte Cloud-Region verlangen
MonitoringFehlertracking, strukturierte Logs, VerfügbarkeitsprüfungenDas Volumen eine vollständige Observability-Plattform rechtfertigt

Eine mobile App ist meist ein späterer Schritt. Arbeitet der Käufer am Schreibtisch, liefern Sie zuerst das Webprodukt aus und ergänzen mobile Apps, sobald die Kernaufgabe bewiesen ist.

Der Entwicklungsprozess, Phase für Phase

Wir veröffentlichen keine Wochenangaben, weil dieselbe Phase von Produkt zu Produkt stark variiert. Entscheidend ist, was jede Phase liefern muss, bevor die nächste beginnt.

PhaseZielFertig, wenn
DiscoveryKäufer, Aufgabe, bezahlter Moment, RisikenEin einseitiger Scope und der Pfad der ersten Sitzung abgestimmt sind
GrundlagenAuthentifizierung, Organisationen, Rollen, Mandantenfähigkeit, DeploymentZwei Testmandanten existieren und die Daten des jeweils anderen nicht lesen können
Kern-WorkflowDie eine Aufgabe, durchgängigEin echter Nutzer sie ohne Hilfe abschließt
AbrechnungTarife, Testphase, Checkout, Webhooks, FunktionsfreigabenEin Testkunde ein Abo abschließen, upgraden, eine Zahlung fehlschlagen lassen und kündigen kann
HärtungSicherheitsprüfung, Backups, Monitoring, Onboarding-E-MailsDie Launch-Checkliste unten bestanden ist
Privater LaunchErste echte KundenDer Launch-Test aus Ihrem Scope gemessen wird

Was es verlängert: Integrationen mit anderen Systemen, Datenimporte aus dem alten Tool eines Kunden, mehr als zwei oder drei Rollen und Compliance-Anforderungen wie SSO oder Vorgaben zum Speicherort der Daten. Was es verkürzt: ein Käufer, ein Workflow und ein Entscheider, der Fragen schnell beantwortet.

Launch-Checkliste

  1. Die Mandantentrennung wird in der Datenbank erzwungen, und automatisierte Tests versuchen, Mandantengrenzen zu überschreiten.
  2. Rollen werden bei jeder Aktion auf dem Server geprüft, nicht nur in der Oberfläche ausgeblendet.
  3. Passwörter verwaltet der Auth-Anbieter, Sitzungen laufen ab und lassen sich widerrufen.
  4. Webhook-Signaturen werden geprüft, und Ereignisse werden genau einmal verarbeitet.
  5. Eine fehlgeschlagene Zahlung, eine Kündigung und ein Tarifwechsel wurden jeweils durchgängig getestet.
  6. Backups laufen automatisch, und eine Wiederherstellung wurde einmal getestet.
  7. Fehler und langsame Anfragen erreichen eine Person, mit Angabe von Mandant und Nutzer.
  8. E-Mails zu Registrierung, Einladung, Passwort-Reset und Belegen werden von Ihrer eigenen Domain zugestellt.
  9. Datenschutzerklärung, Nutzungsbedingungen und ein Auftragsverarbeitungsvertrag liegen vor, und Sie wissen, wo Kundendaten gespeichert sind.
  10. Sie können die Daten eines Kunden auf Anfrage exportieren oder löschen.
  11. Es gibt eine Staging-Umgebung, und Deployments lassen sich zurückrollen.
  12. Die Produktanalyse erfasst den Pfad der ersten Sitzung, sodass Sie sehen, wo neue Nutzer aufhören.

Häufige Fehler

  • Zuerst für den zweiten Kunden bauen. Eigene Rollen, White-Labeling und Reporting entstehen, bevor ein einziger Kunde bezahlt hat.
  • Mandantenfähigkeit später nachrüsten. Bei einem Produkt, das für einen Kunden gebaut und dann „mandantenfähig gemacht“ wurde, muss jede Tabelle und jede Abfrage neu geprüft werden.
  • Eigene Abrechnungslogik schreiben. Anteilige Berechnung, Steuern und Wiederholungsversuche sind gelöste Probleme. Nutzen Sie die Lösung des Anbieters.
  • Keine Admin-Ansicht. Das Team führt am Ende SQL von Hand aus, um Supportfragen zu beantworten.
  • Den Stack für eine Größe wählen, die Sie nicht haben. Microservices und mehrere Datenbanken bremsen ein MVP und helfen ihm selten.

Was wir gebaut haben

Zwei Produkte, die wir ausgeliefert haben, zeigen das Muster. TMS ist unser eigenes mandantenfähiges SaaS-MVP für Teammanagement, mit Kanban-Boards, Sprints, Check-ins, HR und Gehaltsabrechnung. Cheggl ist ein deutsches Video-Branchenverzeichnis mit Unternehmens-Dashboard, Admin-Konsole und KI-Suche. Beide haben mit einer eng gefassten Kernaufgabe begonnen und sind von dort aus gewachsen.

Brauchen Sie Unterstützung bei Ihrem SaaS-MVP?

Wir planen und entwickeln SaaS-MVPs in TypeScript, mit Mandantenfähigkeit und Abrechnung ab dem ersten Release. Nennen Sie uns Käufer und Aufgabe auf unserer Seite zur SaaS-Entwicklung, oder lesen Sie, wie wir bei der MVP-Entwicklung vorgehen. Wenn Sie bereits ein Produkt haben und KI-Funktionen ergänzen möchten, lesen Sie unseren Leitfaden zur Integration von KI in ein SaaS-Produkt.

Quellen

/Schlagwörter#SaaS#MVP#Architektur

Geschrieben von

Webguru

Engineering-Team

Webguru.pk ist ein Shopify-Entwicklungsteam aus Lahore, Pakistan, das Shops, individuelle Apps und Integrationen für Marken weltweit entwickelt.

/Teilen

Brauchen Sie dabei Unterstützung?

Wir planen, bauen und reparieren genau solche Lösungen für Shopify-, SaaS- und KI-Produkte.

/faqs

SaaS-MVP entwickeln: Häufige Fragen

Es ist die kleinste Version eines Abo-Produkts, für die sich ein echter Kunde registrieren, mit der er die Hauptaufgabe erledigen und für die er bezahlen kann. Anders als ein Prototyp enthält es Konten für Organisationen, Mandantentrennung und Abrechnung, weil ein Geschäftskunde genau das mitprüft.

Registrierung und Login, Organisationen mit Einladungen und einigen Rollen, einen Kern-Workflow, der durchgängig funktioniert, ein oder zwei Tarife mit Testphase und Kartenzahlung, Mandantentrennung und eine einfache Admin-Ansicht für Ihr eigenes Team. Eigene Rollen, SSO, Reporting-Dashboards und White-Labeling können in der Regel warten.

Das hängt von der Zahl der Integrationen, den zu importierenden Daten, der Zahl der benötigten Rollen und möglichen Compliance-Anforderungen ab. Ein Produkt mit einem Käufer und einem Workflow kommt am schnellsten voran. Einen Zeitplan stimmen wir ab, sobald der einseitige Scope geschrieben ist, weil dann die Unbekannten sichtbar sind.

Ein Stack, für den Ihr Team Entwickler findet und der das Produkt in einer Codebasis hält. Wir starten mit Next.js und TypeScript, PostgreSQL mit Row-Level Security, einem verwalteten Auth-Anbieter, Stripe für die Abrechnung und einer verwalteten Hosting-Plattform und ändern eine Schicht nur, wenn eine Anforderung es verlangt.

Ja, wenn Sie an mehr als ein Unternehmen verkaufen wollen. Eine gemeinsame Datenbank mit einer Mandanten-ID in jeder Zeile, von der Datenbank erzwungen, reicht für die meisten MVPs. Mandantenfähigkeit in ein Produkt nachzurüsten, das für einen Kunden gebaut wurde, bedeutet, jede Tabelle und jede Abfrage neu zu prüfen.

Lassen Sie den Zahlungsanbieter den Status des Abonnements führen. Nutzen Sie einen gehosteten Checkout und ein Kundenportal, aktualisieren Sie Ihre eigene Kopie des Tarifs über geprüfte Webhooks und entscheiden Sie den Zugriff auf Funktionen an einer Stelle im Code. Hängen Sie das Abonnement an die Organisation, nicht an einen einzelnen Nutzer.

Ein Prototyp zeigt, wie das Produkt funktionieren könnte, und wird meist verworfen. Ein MVP wird von echten Kunden genutzt und ist die erste Version des echten Produkts. Seine Grundlagen wie Authentifizierung, Datentrennung und Abrechnung müssen deshalb solide sein.

Das hängt vom Umfang ab: von der Zahl der Workflows, Rollen und Integrationen und vom Compliance-Aufwand. Ein Angebot erstellen wir, sobald der einseitige Scope abgestimmt ist, damit die Zahl an eine schriftliche Liste dessen gebunden ist, was gebaut wird.

Planen Sie ein SaaS-MVP?

Nennen Sie uns den Käufer und die eine Aufgabe, die das Produkt erledigt, und wir helfen Ihnen, das erste Release auf das zu begrenzen, wofür ein Kunde bezahlt.

oder schreiben Sie an+44 7882 755642