Back to Projects
Web Development2020
DEPLOYMENT STATUS: SUCCESS

REMOTE LEARNING PLATFORM

React SPA with real-time video integration built to scale rapidly during the shift to remote work.

Lighthouse Score

83

Uptime

99.0%

Avg Latency

200ms

Status

LIVE

01

PROJECT OVERVIEW

React SPA with real-time video integration built to scale rapidly during the shift to remote work.

This project showcases our expertise in web development, delivering a robust solution that exceeds industry standards for performance, reliability, and maintainability.

02

THE CHALLENGE

PROBLEM

An EdTech startup needed to scale their video-conferencing classroom product from 200 to 50,000 concurrent users in 6 weeks when COVID moved schools online globally.

OUTCOME

Rebuilt the signalling layer on Socket.io cluster with Redis adapter and switched to SFU WebRTC topology, handling 50K concurrent users at 99% uptime throughout the school year.

03

ARCHITECTURE & CODE

sfu-signaling.ts
TypeScript
1// SFU topology: one publisher → many subscribers via media server
2export class SFUSignalingService {
3 constructor(
4 private io: Server,
5 private redis: Redis
6 ) {
7 this.io.adapter(createAdapter(redis, redis.duplicate()));
8 }
9
10 async publishStream(roomId: string, offer: RTCSessionDescription) {
11 const room = await this.getOrCreateRoom(roomId);
12
13 // Publisher sends one stream; SFU fans it out to all subscribers
14 // This removes the N² WebRTC connection problem from mesh topology
15 room.publisherOffer = offer;
16 await this.redis.hset(`room:${roomId}`, "offer", JSON.stringify(offer));
17
18 // Notify all waiting subscribers in this room (cross-server via Redis)
19 this.io.to(roomId).emit("publisher:ready", { roomId });
20 }
21}
04

DEPLOYMENT PIPELINE

ci/cd — deploy log
6 PASSED
1 HIGHLIGHT
BUILD COMPLETE
01▸ Running frontend test suite...
02✓ React Testing Library — 104 tests passed
03▸ Building production React bundle...
04✓ Bundle: 3.1MB total (lazy-loaded per route)
05▸ Building signalling server Docker image...
06✓ Image built and pushed to ECR
07▸ Deploying to Auto Scaling Group (15 → 60 instances)...
08✓ Scale-out complete — 60 EC2 t3.xlarge instances active
09✓ Socket.io Redis adapter connected — cluster mode enabled
10▸ Running concurrent user load test...
11✓ 50,000 concurrent WebSocket connections sustained
12! Avg signalling latency: 180ms — within 200ms SLA ✓
05

PERFORMANCE AUDIT

lighthouse — performance report
83
LIGHTHOUSE PERFORMANCE
ACCEPTABLE — OPTIMISE BEFORE PROD
CORE WEB VITALS
LCP — Largest Contentful PaintTime until the largest element is rendered
2.8sIMPROVE
FID — First Input DelayResponsiveness to first user interaction
25msGOOD
CLS — Cumulative Layout ShiftVisual stability during page load
0.06GOOD
TTFB — Time to First ByteServer response time to first byte
350msIMPROVE
TECHNOLOGY STACK
ReactTypeScriptWebRTCNode.jsSocket.ioAWS EC2
INTERESTED?

Let's discuss how we can build something similar for your organization.