In 18 months, we took an EdTech platform from a founder's wireframe to 250,000 daily active users. The app handles 2,000+ concurrent video streams, processes 50,000 quiz submissions per hour, and runs on a $4,200/month infrastructure bill.
Here's what we built, what broke, and what we'd do differently.
The Problem We Were Solving
The founder wanted CA exam preparation for 500K+ students. Existing platforms were either expensive (Unacademy at $200+/year) or had poor UX. The brief: live classes, recorded lectures, AI-powered quizzes, and doubt resolution — all at a $50/year price point.
Budget: $40K for MVP. Timeline: 12 weeks.
The Architecture That Made It Work
We didn't overthink the stack. We picked proven tools and focused on shipping.
Frontend: Flutter with BLoC state management. One codebase for iOS and Android saved us 40% compared to building native.
Backend: Node.js + Express for the API server. Python FastAPI for the quiz engine and ML-powered adaptive learning.
Database: PostgreSQL for user data and courses. Redis for session caching and real-time leaderboards. S3 for video storage.
Video: Agora SDK for live streaming (supporting 500+ concurrent viewers). HLS via CloudFront CDN for recorded content.
Real-time: WebSocket for live quiz battles and doubt resolution chat.
The key architectural decision: we didn't build for 250K users on day one. We built for 10K and redesigned twice as we scaled.
What It Actually Cost
Real numbers — not estimates:
- MVP (0-10K users): $40K build + $400/month infra = $44.8K first year
- Growth phase (10K-50K): $25K in additional features + $1,200/month infra
- Scale phase (50K-250K): $35K performance work + $4,200/month infra
- Total 18-month cost: ~$170K
Infrastructure cost grew 10x. Revenue grew 25x. The economics worked because we built for scale starting at month 6, not month 1.
The Three Biggest Technical Challenges
Challenge 1: Video streaming costs. At 5K concurrent viewers, Agora bills spiked. We moved all recorded content to HLS + CloudFront — 90% cheaper. Live streaming stayed on Agora but only for interactive sessions.
Challenge 2: Quiz engine bottleneck. 50K submissions per hour caused PostgreSQL row locks. We moved real-time scoring to Redis and batch-wrote results to PostgreSQL every 5 minutes.
Challenge 3: Low-end Android performance. Our Flutter APK hit 45MB. Students on budget phones couldn't install it. Deferred components, lazy loading, and an image compression pipeline got it to 28MB. Crash rate dropped from 2.1% to 0.3%.
What We'd Do Differently Today
Being honest here — we made mistakes:
- Would use Supabase instead of a custom auth + API layer. Would've saved $15-20K.
- Would add analytics from day 1. We plugged in Mixpanel at 50K users and lost 6 months of behavioral data.
- Would hire a QA engineer from month 3. Manual testing slowed the team down. Automated tests would've paid for themselves by month 6.
What we wouldn't change: Flutter (right choice), PostgreSQL (right choice), starting with an MVP (right choice).
If You're Building Something Similar
Phase 1 (weeks 1-12): MVP with auth, video player, quiz engine, and payments. Budget $30-50K.
Phase 2 (months 4-8): Growth features — live streaming, gamification, doubt resolution. Budget $20-35K.
Phase 3 (months 9-18): Scale infrastructure, optimize costs, add AI features. Budget $30-50K.
Total realistic budget to reach 100K+ users: $80-135K.
Read the complete case study with full architecture diagrams, feature-by-feature cost breakdown, and the FAQ section at geminatesolutions.com/blog/edtech-platform-250k-users-case-study.
Geminate Solutions builds web, mobile, and AI-powered products for startups and growing businesses worldwide. 50+ products shipped globally.
Top comments (0)