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 server2export class SFUSignalingService {3 constructor(4 private io: Server,5 private redis: Redis6 ) {7 this.io.adapter(createAdapter(redis, redis.duplicate()));8 }910 async publishStream(roomId: string, offer: RTCSessionDescription) {11 const room = await this.getOrCreateRoom(roomId);1213 // Publisher sends one stream; SFU fans it out to all subscribers14 // This removes the N² WebRTC connection problem from mesh topology15 room.publisherOffer = offer;16 await this.redis.hset(`room:${roomId}`, "offer", JSON.stringify(offer));1718 // 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
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