SaaS
Multi-tenant SaaS with Next.js
What the Designyff SaaS kit stores per user, and what you still have to add if each customer needs an isolated workspace.
People search for multi-tenant SaaS when one deployment should serve many customer workspaces. The Complete SaaS Starter Kit does not ship tenant tables. It ships one User per account, with plan, stripeCustomerId, and stripeSubscriptionId. That is a single-tenant account model: each login is the customer.
What you already have
Authentication, PostgreSQL, and the webhook that sets plan to "pro" or "free" are in the kit. Read Next.js authentication architecture and the Prisma schema before adding tenants. Billing stays on the user until you decide which row pays.
What a tenant adds
A workspace needs its own id, a membership join from users to that workspace, and a rule for which queries filter by it. The starter does not include that join. If you add it, keep Stripe ids on the row that owns the subscription, not copied onto every member.
Isolating rows in the application is not the same as a separate database per customer. The kit uses one PostgreSQL database.
Dashboard screens for a workspace can sit on the admin shell. They still need a tenant id in the query.