All case studies
Websites2023

SaaS Dashboard

Data visualization that drives decisions

Client
Analytics Startup (Seed-stage, targeting healthcare providers)
Role
Lead Developer
Duration
4 months
Year
2023
250K+
Data Points/Day
99.5%
Uptime SLA
18
Active Clients
4hrs
Onboarding Time

Overview

An analytics startup had built a solid MVP that landed their first 5 healthcare clients, but hit a technical ceiling. Every new client required 2-3 weeks of custom development to white-label the dashboard and configure their data sources. Their CTO reached out when a hospital network wanted to sign for 10 locations—but their architecture literally couldn't handle it. They needed a complete rebuild or they'd lose their biggest opportunity.

!

The Challenge

The original Django monolith with Chart.js could only handle 10K data points before the browser froze. Each client needed custom code for their branding (logos, colors, domains). There was no multi-tenancy—every client shared the same database tables with client_id filters (security nightmare). Real-time updates required full page refreshes. Worst of all: the codebase was so brittle that adding features for one client broke things for others.

The Solution

I architected a true multi-tenant SaaS platform from scratch. React + D3.js frontend handles 1M+ data points using virtualization and progressive rendering. Node.js microservices architecture separates data ingestion, processing, and API layers. PostgreSQL with row-level security ensures tenant isolation. Socket.io enables real-time dashboard updates without refresh. Built a theming engine that lets clients customize everything via admin panel—no code changes needed.

The Process

1

Architecture Design & Tech Decisions

Evaluated their biggest pain points: multi-tenancy, white-labeling, and data scale. Chose React over Vue (needed D3 integration), Node.js over Python (better for real-time), PostgreSQL over MongoDB (needed ACID for healthcare compliance). Designed schema with tenant isolation at database level—each client gets own tables in shared DB with RLS policies.

2

AWS Infrastructure & Data Pipeline

Set up ECS for containerized microservices (data-ingestion, API, websocket servers). Used RDS PostgreSQL with read replicas for scaling. Implemented SQS for async data processing—ingests can handle 10K events/sec without blocking dashboards. CloudWatch + custom metrics for real-time monitoring.

3

Frontend & Visualization Engine

Built React dashboard with virtual scrolling (only render visible data). D3.js charts use canvas rendering for 100K+ points instead of SVG (50x faster). Implemented progressive loading: show summary first, load details on zoom. Added Socket.io client for real-time updates—new data streams in without refresh.

4

White-Label System & Migration

Created theming engine: clients upload logo, pick colors, set custom domain via admin UI. Built migration scripts to move 5 existing clients to new platform with zero downtime (ran both systems in parallel for 2 weeks). Reduced new client onboarding from custom development to: upload logo, connect data source, go live.

Tech Stack

ReactNode.jsD3.jsAWSPostgreSQLSocket.io
This rebuild was make-or-break for us. We landed that 10-location hospital deal and onboarded them in an afternoon instead of 3 weeks. The platform now handles more data than we ever imagined. Our biggest technical constraint became our biggest competitive advantage.
C
Client feedback
CTO

Ready to build something great?

Let's discuss your project and explore how I can help you achieve similar results.

Get in touch