Insight

Shipping a real multi-tenant SaaS

A convincing AI demo can live in one database row and a .env file. A product cannot. ServiceBrief AI is multi-tenant from the data model up: organizations, users, plans, knowledge, inboxes, and jobs. This post is the unglamorous work that makes the AI features safe to sell.

Isolation is a query habit, not a middleware sticker

Every job, chunk, email, and quote belongs to an organizationId. Server paths have to filter on it even when the UI only shows “my company.” Cross-tenant retrieval in a vector store is the failure that does not show up in a happy-path screenshot. We treated org scope as a non-negotiable next to the pricing rule and the approval rule.

Roles change the product

Technicians need fast capture and their jobs. Owners and managers need inbox, intake, customers, quotes, team, billing, knowledge, and AI runs. Platform admins need a different shell: organizations, users, support, health, logs. If you hide a button in CSS and leave the API open, you do not have roles. Mutating routes enforce the same story the nav tells.

Auth is a funnel

Register, verify email, log in with a short-lived access token and a refresh cookie, reset password, join with an invite. Onboarding sets up the workspace, optionally into checkout. None of this is exciting. All of it is why a stranger on the internet is not looking at someone else’s reports.

Billing has to say no

Paddle handles checkout, portal, and webhooks with signature checks. Plans (trial, starter, pro, growth, enterprise) carry limits: users, jobs, AI reports, transcription minutes, features like RAG and extra inboxes. The API asserts those limits on mutating actions. A product that cannot say “you are over plan” is a demo with an invoice attached.

Someone has to run the platform

When a company is stuck, you need support, health, and the ability to see an org without logging in as them in a spreadsheet. A platform admin console is part of shipping, not a phase two fantasy. Logs and health checks are how you sleep after you turn the AI queue on.

Why this belongs on a company blog

If [Your company] sells “we will add AI,” this is the filter. Can you isolate tenants, bill, limit usage, and operate the thing? ServiceBrief is an example of that bar. The voice-to-report story is the headline. This is the floor the headline stands on.

Have a project in mind?

Let's turn it into production software.

Start a conversation