All case studies
Customer portal · US

A customer-facing portal layered on a data platform

A self-service portal sitting on top of the data platform: per-tenant dashboards, signed-URL exports, role-scoped reads. Built to scale to thousands of concurrent tenants without per-customer ops overhead.

US
market
Self
service
Role
scoped
0
cross-leak

The build stack

Frontend
Next.js + per-tenant theming + accessible by default
Backend
Same data platform — portal is a thin read-mostly facade
Auth
Magic-link + password fallback + SSO-ready
Exports
Signed-URL CSV/PDF, time-limited, single-use, audit-logged

Highlights

Self-service login + tenant dashboards

Customers log in, see their own tenant slice, and run queries. No back-and-forth with support. Dashboards remember filter state per user, not per tenant — so multiple users in the same tenant can have different views.

Signed-URL exports for the audit trail

CSV / PDF exports go through a signed-URL gate: HMAC of (tenant + path + expiry + nonce). Single-use; replay attempts fail closed; every download is audit-logged.

Role-scoped reads — no application-layer trust

Every API endpoint declares its required role. Middleware rejects mismatches before any handler runs. Customer ops can grant a "read-only auditor" role that physically cannot run a write — even if a bug tried.

Need a platform at this level?

We discuss scope and milestones in a single contact step.

Start the conversation