Back to Case Studies
Skyline Meridian / ZicopsApr 2022 – Present

Scaling a Multi-Tenant OTT & LMS to 10,000+ Users

Full-Stack Developer

Next.jsNode.jsGraphQLReact NativeCapacitor

Skyline Meridian needed two products simultaneously: a multi-tenant OTT streaming platform and an enterprise LMS, both serving thousands of concurrent users across web and mobile. I owned the full-stack development of both, making architectural decisions that had to scale from day one.

The Challenge We Faced

Building one product from scratch is hard. Building two interconnected products — a streaming platform and a learning management system — while ensuring both work seamlessly on web and mobile is a different kind of challenge. Each tenant needed their own branded experience, and the system needed to handle 10,000+ concurrent users without degrading.

1

Two products needed to share infrastructure but serve different use cases

2

Each tenant required their own branding, content library, and user management

3

The platform needed to work on web, iOS, and Android from a single codebase

4

Traditional REST APIs were creating integration friction between frontend teams

How I Thought About the Solution

I chose a schema-first approach with GraphQL as the contract layer between all frontend surfaces and the backend. This let each platform (OTT, LMS, mobile) evolve independently while sharing the same data layer. For cross-platform delivery, I used hybrid wrappers rather than maintaining separate native codebases.

Schema-First GraphQL Design

Defined the entire data contract upfront as a GraphQL schema. Frontend and backend teams could work in parallel against this contract, reducing integration friction by 30%.

Multi-Tenant Architecture

Built tenant isolation at the data layer so each organization got their own content, branding, and user pools while sharing the underlying infrastructure.

Cross-Platform with Hybrid Wrappers

Used React Native and Capacitor as hybrid wrappers around shared business logic, delivering iOS and Android apps without maintaining separate native codebases.

Performance at Scale

Designed caching strategies, optimistic updates, and lazy loading patterns to keep the experience responsive under load for 10,000+ concurrent users.

The Building Process

From zero to 10,000+ users, this project was a masterclass in making architectural bets that pay off at scale.

Quarter 1: Architecture & Foundation

Designed the GraphQL schema, set up multi-tenant database patterns, and built the core Next.js application shell. Got the first tenant onboarded with basic streaming functionality.

Quarter 2: LMS Module

Built the enterprise LMS with course management, progress tracking, and assessments. Integrated it with the same GraphQL layer, proving the schema-first bet was right.

Quarter 3: Mobile Delivery

Shipped cross-platform mobile apps using React Native and Capacitor. The shared GraphQL layer meant mobile got feature parity almost instantly — no separate API work needed.

Quarter 4+: Scale & Optimize

Optimized for 10,000+ concurrent users. Added caching layers, refined query patterns, and onboarded multiple enterprise tenants, each with custom branding.

What We Built

A unified platform serving both OTT streaming and enterprise learning management, with multi-tenant isolation and cross-platform delivery — all from a shared architectural foundation.

Multi-tenant platform where each organization gets a branded, isolated experience

Shared GraphQL API serving web, iOS, and Android from a single data layer

Enterprise LMS with full course management, progress tracking, and certifications

Hybrid mobile apps delivered through React Native and Capacitor wrappers

The Impact

The schema-first approach proved its value at every stage — faster development, easier onboarding of new tenants, and seamless cross-platform delivery.

30%
Reduction in frontend integration roadblocks
10K+
Monthly active users supported concurrently
3
Platforms served from one codebase (Web, iOS, Android)
0→1
Full product lifecycle ownership, twice

What I Took Away

Schema-first development unlocks parallelism

Defining the GraphQL schema upfront as a contract meant teams could work in parallel from day one. The frontend never waited on the backend, and vice versa.

Hybrid mobile is viable at scale

The React Native/Capacitor approach delivered 90% of native performance at 30% of the development cost. For content-focused apps, it was the right trade-off.

Multi-tenancy needs to be foundational

Retrofitting multi-tenant isolation is painful. Building it in from the start meant onboarding new enterprise clients was a configuration task, not an engineering project.

Tech Stack

Frontend

Next.jsReactTypeScript

Mobile

React NativeCapacitor

API Layer

GraphQLNode.js

Database

MongoDBRedis

Infrastructure

AWSCDNCloud Functions
Next Case Study

Building an AI Skincare Platform with Computer Vision & E-Commerce

SkinGenii2024

Want to build something like this?

I'm available for high-impact product engineering work.

Let's Talk