Skip to main content
CASE STUDY

HowWeBuiltanEdTechPlatformThatReached250KDailyUsers

Youth Pathshala grew from zero to 250K daily active users in 18 months. A single Flutter codebase powers iOS, Android, and web with live classes, offline downloads, and spaced repetition.

Overview
IndustryEdTech
Timeline6 months initial, 18 months to 250K DAU
Team Size4 Flutter + 1 Backend + 1 Designer
Investment$80,000 - $140,000

The Challenge

Youth Pathshala's students were scattered across three different platforms. Lectures lived on one app. Test series on another. Study materials on a third. The result? A 60% drop-off rate before course completion. Students weren't failing because the content was bad. They were failing because the experience was broken.

Connectivity made everything worse. Large portions of the student base accessed content from areas with unreliable mobile networks. Video lectures would buffer endlessly. Downloads failed mid-way. Students on 2G connections couldn't even load the course catalog. The platform needed to work offline-first, not as an afterthought.

There was also a retention problem that went beyond UX. Students would watch lectures once and never return. Without any mechanism for spaced repetition or review scheduling, knowledge retention dropped sharply after the first week. The client needed a platform that didn't just deliver content but actually helped students learn.

The Solution

Geminate Solutions built a unified cross-platform application using Flutter, backed by a Node.js API layer and PostgreSQL on AWS. The architecture was designed around one principle: everything works offline. Video content streams via HLS with adaptive bitrate, but every lecture can be downloaded in the background for offline viewing. Course progress syncs when connectivity returns.

Live classes run through WebRTC with fallback to audio-only mode when bandwidth drops below 500kbps. The spaced repetition engine, modeled on the Ebbinghaus forgetting curve, sends push notifications at mathematically optimal intervals. Students don't decide when to review. The system tells them.

A single Flutter codebase powers iOS, Android, and web. That's not just a cost decision. It means every feature ships to all platforms simultaneously. No iOS-first delays. No Android feature gaps. The team at Geminate deployed 47 feature releases in the first 12 months, all from one repository.

Tech Stack

Flutter, Dart, Node.js, PostgreSQL, AWS (S3, CloudFront, EC2), Firebase Cloud Messaging, HLS video streaming, WebRTC, WebSocket, Hive (local storage), sqflite

Architecture Decisions

The first major decision was choosing Flutter over React Native. The team at Geminate evaluated both frameworks against three criteria: offline data persistence, custom UI component speed, and long-term maintainability. Flutter won on all three. Sqflite and Hive packages made offline-first architecture straightforward. Flutter's widget composition system let the team build custom progress rings, interactive quizzes, and drag-and-drop exercises 3-4x faster than equivalent React Native implementations.

Video delivery architecture was the second critical choice. We went with HLS over DASH because of broader device compatibility and simpler CDN configuration with CloudFront. Each lecture gets encoded into 4 quality levels (240p, 480p, 720p, 1080p). The player automatically switches based on available bandwidth. On a 2G connection, students still get smooth 240p playback instead of endless buffering.

For the backend, we chose PostgreSQL over MongoDB. Course data has clear relational structure: students enroll in courses, courses contain modules, modules contain lessons, lessons have prerequisites. Modeling this in a document database would have created denormalization nightmares. PostgreSQL's JSONB columns gave us flexibility where we needed it (quiz configurations, dynamic content blocks) without sacrificing relational integrity.

Push notification infrastructure used Firebase Cloud Messaging with a custom scheduling layer. The spaced repetition engine doesn't just send generic reminders. It tracks each student's learning curve per topic and schedules review notifications at the exact intervals where retention data shows knowledge starts to fade. This isn't a cron job. It's a per-student, per-topic notification graph.

Key Features Built

Offline-First Content Delivery

Every lecture, quiz, and PDF can be downloaded for offline access. Downloads happen in the background using a priority queue. The system pre-downloads the next 3 lessons in a student's current course when connected to Wi-Fi. Students on the morning commute open the app and find their next lesson already waiting. This single feature drove DAU from 80K to 250K within 6 weeks of launch.

Adaptive Bitrate Video Streaming

HLS streaming with 4 quality tiers ensures smooth playback regardless of network conditions. The player monitors bandwidth in real-time and switches tiers without interrupting playback. CloudFront CDN with multi-region edge nodes delivers content in under 1 second. For a 45-minute lecture, buffer events dropped from an average of 12 per session to less than 1.

Spaced Repetition Engine

Built on the Ebbinghaus forgetting curve, the system calculates optimal review intervals for each student per topic. When a student completes a lesson, the engine schedules review prompts at 1 day, 3 days, 7 days, and 21 days. Students who respond to these prompts show 34% higher retention compared to those who don't. The engine adapts: if a student fails a review quiz, the interval resets.

Live Classes via WebRTC

Real-time classes support up to 500 concurrent students per session. The instructor streams video while students participate through a live chat sidebar and raise-hand queue. WebRTC handles the video pipeline with automatic fallback to audio-only when bandwidth drops below 500kbps. Recorded sessions become available for offline download within 15 minutes of class ending.

Interactive Quiz System

Quizzes aren't just multiple choice. The platform supports drag-and-drop matching, fill-in-the-blank with fuzzy matching, image-based questions, and timed assessments. Quiz results feed directly into the spaced repetition engine. A student who scores 90% on a topic gets longer review intervals. A student who scores 60% gets more frequent prompts. Everything works offline too.

Progress Analytics Dashboard

Both students and instructors get analytics. Students see completion rates, quiz scores over time, and streak counts. Instructors see aggregate engagement data: which lectures get rewatched (indicating confusion), which quiz questions have low pass rates (indicating poor content), and student cohort comparisons. This data drove 14 content revisions in the first 6 months.

The Results

MetricResultContext
Daily Active Users250,000+From zero in 18 months
Student Engagement85% higherCompared to the previous fragmented system
Course Completion Rate3.2x improvementOffline downloads eliminated connectivity barriers
Platform CoverageiOS + Android + WebSingle Flutter codebase for all three
Content DeliveryUnder 1 secondMulti-region CloudFront CDN
Knowledge Retention34% increaseSpaced repetition vs. no review prompts

Investment Breakdown and ROI

The total project investment fell between $80,000 and $140,000, spread across 6 months of initial development. Here's where the budget went: approximately 40% on Flutter mobile and web development, 25% on backend API and database architecture, 15% on video infrastructure (encoding pipeline, CDN configuration, HLS setup), 10% on UI/UX design and prototyping, and 10% on QA testing across devices and network conditions.

Monthly operational costs scale with usage. At 50,000 users, the platform runs at roughly $500 per month for AWS hosting, CDN, and Firebase messaging. At 250,000 daily active users, that number climbs to $800-$1,500 per month. Video storage and streaming account for about 60% of infrastructure spend. The rest covers database, compute, and notification services.

The return on investment was strong. Youth Pathshala charges $5-$10 per month per student subscription. Even at a conservative $5/month with 10% of DAU as paying subscribers, that's 25,000 paying users generating $125,000 per month in revenue. The platform became profitable within 10 months of launch, well before reaching the 250K DAU milestone.

Was the investment worth it? The math speaks for itself. A $140,000 build cost generating $125,000+ in monthly recurring revenue means the entire project paid for itself within the first year. Monthly maintenance costs represent less than 2% of revenue. That's affordable by any SaaS standard. The budget allocation toward offline-first architecture (which added roughly $15,000 to the build) directly caused the DAU spike that made the pricing model viable.

Why Outsourcing This Project Made Sense

Youth Pathshala's founding team had deep expertise in education content but no mobile development capability. Hiring an in-house team of 4 Flutter developers, 1 backend engineer, and 1 designer would have taken 3-4 months just for recruitment. Salary costs for that team in a major tech market run $40,000-$60,000 per month. Over the 6-month build, that's $240,000-$360,000 before office space, equipment, and management overhead.

The staff augmentation model with Geminate Solutions as a technology partner delivered the same team composition at a fraction of the cost. Dedicated developers started within one week of project kick-off. No recruitment delays. No onboarding friction. The remote team operated in overlapping time zones, with daily standups and weekly sprint demos. The client maintained full product ownership while the Geminate team handled all technical execution.

The savings weren't just about developer rates. Outsourcing to a technology partner that had already built EdTech products meant the team avoided expensive architectural mistakes. The offshore development team brought proven patterns for offline content sync, video streaming infrastructure, and push notification scheduling. An in-house team learning these patterns from scratch would have added 2-3 months to the timeline. The cost-effective approach wasn't the cheap approach. It was the smart one.

How This Compares to Alternatives

Should you build a custom LMS or use Moodle? It's the first question every EdTech founder wrestles with. The answer depends on your scale, your learner experience requirements, and how much you're willing to fight a platform's limitations.

ApproachCostTimelineCustomizationBest For
Custom EdTech Platform$60K–$150K upfront4–7 monthsFull controlPlatforms targeting 50K+ users with unique pedagogy
Moodle (self-hosted)Free + $50K–$100K to customize2–4 months (with devs)High (PHP codebase, steep learning curve)Universities with existing IT teams
Teachable$99–$399/mo1–2 weeksLow (template-based)Solo creators selling courses
Thinkific / Canvas LMS$0–$499/mo1–4 weeksLow to moderateSmall cohorts, standard course delivery

How much does a custom EdTech platform cost vs Teachable? The upfront investment is 50–100x higher. But Teachable takes a cut of every sale, caps your branding, and can't handle offline learning or adaptive content paths. At 250K users, a $399/mo Teachable plan would've cost more in transaction fees alone than the entire custom build.

The offline-first pattern we built here isn't unique to education. We've applied the same architecture to healthcare apps serving rural clinics, fleet management systems where GPS devices lose signal in remote areas, and enterprise tools used in low-connectivity environments worldwide. If you're choosing between building or buying, the real question is this: does your product's core differentiator depend on features no SaaS platform offers? If yes, custom is the only path that won't box you in.

Lessons Learned

Offline-first isn't a feature you bolt on later. We designed the entire data layer around the assumption that connectivity would be unreliable. Every API response gets cached locally. Every user action gets queued for sync. This added 2-3 weeks to the initial architecture phase, but it's the single reason the platform works for students in low-connectivity areas. Trying to add offline support to an online-first architecture would have required a full rewrite.

Video encoding quality matters more than streaming speed. Early on, we optimized for fast delivery and neglected encoding presets. Students complained about blurry text in lecture slides even at 720p. We switched to a custom encoding profile that prioritizes sharpness over compression, which increased storage costs by 20% but eliminated quality complaints entirely.

Spaced repetition only works if notifications feel helpful, not spammy. The first version sent 4-5 review reminders per day. Uninstall rates spiked. We dialed it back to a maximum of 2 reminders per day, grouped by subject, and let students snooze topics they felt confident about. Uninstall rates dropped to normal. Engagement with review prompts actually increased because students trusted the system wasn't going to flood their notification tray.

Flutter web performance needs careful attention. The initial web build was 4MB. Students on slow connections waited 8-10 seconds for the first load. We implemented deferred loading for non-critical routes, lazy-loaded heavy widgets, and moved to tree-shaking unused Material icons. Final bundle size: 1.2MB. First meaningful paint under 3 seconds on 3G.

Frequently Asked Questions

How long does it take to build an EdTech app like Youth Pathshala?

The initial MVP with video playback, course management, and user authentication took 12 weeks. Full feature set including live classes, offline downloads, and spaced repetition took 6 months total. A similar platform for a new client would take 14-20 weeks because the architecture patterns are now proven and reusable.

How much does an EdTech platform like this cost?

A comparable EdTech platform costs $80,000-$140,000 for the initial build. Monthly infrastructure costs scale with users: under $500/month for the first 50,000 users, $800-$1,500/month at 250,000 users. The ROI is strong. Youth Pathshala generates revenue through subscriptions at $5-$10/month per active student, making the investment profitable within 10 months.

Why was Flutter chosen over React Native for this project?

Flutter was chosen for three reasons: offline-first architecture is simpler to implement with sqflite and Hive packages, custom learning UI components (progress rings, interactive quizzes, drag-and-drop) build 3-4x faster in Flutter's widget system, and a single 4-person team could maintain iOS, Android, and web from one codebase. That last point saved roughly $40,000 in parallel development costs.

What made the platform grow to 250K users?

Two features drove the majority of growth. Offline downloads caused DAU to jump from 80K to 250K within 6 weeks because students could download content on Wi-Fi and study anywhere without connectivity. Spaced repetition reminders increased retention by 34% when the app reminded students to review material at optimal intervals based on the Ebbinghaus forgetting curve.

Can you build a similar platform for our education business?

Yes. The architecture, technology choices, and scaling patterns from Youth Pathshala are directly reusable. A new EdTech platform using the same architecture typically costs $60,000-$120,000 and takes 14-20 weeks to launch. Geminate Solutions works with education businesses globally. Contact geminatesolutions.com/get-started for a project assessment.

What are the monthly costs of running an EdTech platform at scale?

Monthly infrastructure costs scale with user count. Under 50K users: approximately $500 per month. At 250K daily active users: $800-$1,500 per month including AWS hosting, CloudFront CDN, database, and Firebase messaging. Video storage and streaming account for roughly 60% of infrastructure spend. Maintenance and feature updates add $2,000-$4,000 per month depending on scope.

Related Resources

Want similar results for your EdTech platform?

The architecture, technology choices, and scaling patterns from Youth Pathshala are directly reusable. We've shipped 50+ products globally and can start your project within one week.

Ready to get started?

Start a Project