A Multi-Tenant Data Platform Where Every Client Sees Only Their Data
We built the backend for a multi-tenant B2B data platform — NestJS, SSO, embedded Superset with per-client isolation — and ran a major Superset migration.
Key Results
4.1 → 6.1
Superset upgrade
Three major versions upgraded in 30 days.
~4,400 files
Migration safety
Files merged; 3 silently-lost features caught by automated checks.
3 tenants
Isolation
Three isolated production tenants, each seeing only their own data.
Context
A B2B data platform needed to give each of its customers a view of their own data — dashboards, reports, and AI data agents — without building a separate report for every client.
The problem
Serving analytics to multiple business customers from one platform means strict isolation: every client must see only their data, and nobody else’s. Doing that while keeping a shared, upgradable infrastructure is where most teams get stuck.
What we did
- Built the backend in NestJS (in production since May 2024), with Next.js on the front end and PostgreSQL underneath.
- Added SSO with several corporate providers and role-based access control (RBAC).
- Embedded Apache Superset with per-client isolation, plus AI data agents.
- Ran a major migration of the Superset fork — three major versions (4.1 → 6.1) in 30 days. Automated checks caught three features that would otherwise have been silently lost across ~4,400 merged files.
Result
Three isolated production tenants, each seeing only their own data, on a platform that can still be upgraded safely.
Stack
NestJS · Next.js · PostgreSQL · Apache Superset · SSO · RBAC
