Buyer guide
What belongs in a SaaS MVP
If a paying customer cannot sign up, do the one thing the product promises, and get billed for it, you do not have an MVP. You have a prototype. Trenith’s plain-English note for founders puts the line there. Free pilots teach you less than one person who chose to pay. A workflow that only runs when you paste rows into a sheet is a demo.
Written by SiteMivo. We do not promise a week count, a revenue number, or a SOC 2 certificate. Drafted with research assistance.
Put tenant id on the first migration
Mirko Vanzo’s note on white-label architecture is blunt: if “tenant” appears nowhere, the assumption is already in the data model, the auth flow, the interface, and the deploy. Adding a tenant column to a populated table is a migration on live data. Row-level security bolted on later is the same class of repair. You do not need a database per customer on day one. You do need a tenant on every domain row if more than one organisation will ever sign in. One design partner and no second customer: hardcode it, and write down the day you stop.
Stripe tells you. The app decides
Stripe’s entitlements docs say the API notifies you when to provision or de-provision access. It does not enforce the product. On the summary update, your application enables the features in the payload and disables them when they disappear. Stripe recommends you persist that state yourself, because the webhook is not your access list. A plan change that only updates a Stripe screen, while the app still serves the old feature, is a billing bug with a customer attached.
Cut the admin panel until someone pays
Madgeek’s scoping note uses a test you can apply in a meeting: if you remove the feature and you can still test whether this person will pay instead of using the workaround, remove it. Their example is the custom admin panel. The first customers never see it. Support can live in the database client until the core loop has a payer. We still ship a small admin when the brief needs one person to fix an account without us. That is operations, not the hypothesis.
SaaS development starts from that loop. Start a project with the sentence you are trying to prove.