Skip to main content
A common mistake when building SaaS apps is putting everything on the User model — subscription status, quotas, assets, preferences. This creates problems:
  • Family and team sharing become impossible — subscriptions are locked to one person
  • Profile switching breaks — you cannot have separate preferences per context
  • Billing gets messy — transferring subscriptions or handling corporate accounts is hard
The better pattern separates authentication (User) from content ownership (Account) from billing (Subscription).

The four models

Think Netflix profiles. Projects, documents and assets belong to an Account, not a User.

What this buys you

  • One user can access multiple accounts (personal plus work)
  • Multiple users can share one account (a family plan)
  • Subscriptions transfer cleanly when ownership changes
  • Content queries are scoped to Account, not scattered across Users
  • Team features can be added later without schema changes
When to use this pattern: any app with subscriptions, quotas, shared resources, or where users might want separate workspaces or profiles.