The SDK paved your path into SaaS, not by hiding multi-tenancy, but by naming the constraints you have to follow and holding you to them. Your app already runs inside its own booted tenant. Single-tenant is not a smaller product; it is the same product, operated for one.
So the question was never “Single or Platform?” The question is only when. The day you decide to run your app for many customers, the operational layer is on the table. And the constraints you already followed are exactly the ones that make the step boring.
You could build this yourself on the SDK's open seam. Platform is the version you don't have to.
Platform is not a different SDK. It is the operational layer you add once you decide to become an operator. Part code, part craft.
The home-grown package that drives the SDK's resolver seam across many tenants: database-per-tenant provisioning, domain routing, and isolation guarantees. The SDK ships the seam; this drives it.
CodeA standalone Laravel Zero CLI that creates a tenant end-to-end: a fresh database, the seeded operating org, the wired domain. So provisioning a new customer is one command, not a runbook.
CodeThe guidelines and mental hats of running a SaaS: isolation discipline, backup and restore, support boundaries, the constraints the SDK already taught you, now worn at operator scale.
CraftThe go-to-market structure behind a vertical SaaS: regional operating companies and onboarding consultants, the very roles the SDK's hierarchy already encodes. Strategic counsel on building the business around the software, not bolting sales on afterwards.
CraftOperating for many raises the bar: data isolation you can show an auditor, DPA templates, and readiness for CRA, NIS2, and DSGVO. The tenancy model hands you the isolation story; this hands you the posture and the paperwork.
CraftYour brand, not ours: across the shell, the onboarding tool, and every tenant's identity (logo, legal name, registered seat, all carried by the tenant descriptor). Your customers see your product; the LUX stack stays invisible underneath.
Code