Case Study

EdTech Learning Platform with LMS & Video Streaming

How we built a full-stack EdTech platform with course management, progress tracking, HLS video delivery, and subscription payments — serving 12K+ enrollments across 500+ courses.

Industry
Education / EdTech
Duration
9 Months
Services
Full-Stack · Video · DevOps
Markets
United States

EdTech LMS · HLS Video Pipeline

12K+
Enrollments
500+
Courses
99.2%
Uptime
HLS
Video Delivery

The Client's Vision

A growing EdTech company had built a successful content library across multiple niche verticals — from professional certifications to creative skills — but their platform was held together by legacy tools and manual workflows. Course content lived in disparate systems: some in WordPress, some in Google Drive, and progress was tracked in spreadsheets. Learners had no unified experience, and instructors had no way to see engagement or completion rates across their courses.

They needed a modern learning management system with a single learner app, an admin CMS for course creators, video streaming that could scale to thousands of concurrent viewers, and a subscription engine that handled one-time purchases, monthly plans, and enterprise licenses. The goal was to consolidate everything into one platform that could grow from hundreds to tens of thousands of learners without hitting scaling walls.

What Was Breaking

Fragmented Content

Course videos, PDFs, and quizzes lived across multiple storage systems. There was no single source of truth — instructors spent hours manually uploading content to different buckets, and learners often hit broken links or outdated materials.

No Progress Tracking

There was no way to know if a learner had completed a module, paused mid-video, or dropped off. Certificates were issued manually after instructors checked spreadsheets. Analytics were nonexistent.

Scaling Video Delivery

Raw MP4 uploads to S3 caused buffering during peak hours. There was no adaptive bitrate — mobile users on slow connections couldn't watch smoothly. CDN configuration was minimal.

Payment & Subscription Chaos

Some courses used Stripe, others used PayPal. Subscriptions were tracked in a custom database that didn't sync with payment webhooks. Renewals failed silently, and refunds required manual database edits.

The Architecture We Built

We designed a layered architecture with the learner app and admin CMS as separate frontends sharing a common API. Video content flows through an AWS MediaConvert pipeline that transcodes uploads to HLS, enabling adaptive bitrate streaming. Redis caches enrollment state and progress, and PostgreSQL holds the canonical data. Stripe powers all payments with a single webhook handler that updates subscriptions, access, and invoices.

System Architecture

Learner App & Admin CMS
Next.js learner portal for course browsing, video playback, and progress. Next.js admin for instructors to manage courses, upload content, and view analytics
API Gateway & Auth
Node.js API with JWT auth. Role-based access for learners, instructors, and admins. Rate limiting and request validation
Video Pipeline — HLS Transcoding
AWS MediaConvert transcodes uploads to HLS. CloudFront CDN for global delivery. Signed URLs for secure, time-limited streaming
PostgreSQL — Core Data Store
Courses, modules, enrollments, progress snapshots, and user profiles. Multi-tenant support for B2B enterprise customers
Redis Cache & Session Layer
Caches enrollment status, progress percentages, and video metadata. Reduces database load during peak watch times

The video pipeline was the most complex piece. We built an event-driven flow: uploads go to S3, trigger Lambda to start MediaConvert jobs, and on completion we write HLS manifest URLs to PostgreSQL. The learner app requests signed CloudFront URLs at playback time, so we never expose raw S3 paths. Adaptive bitrate means learners on mobile get lower quality segments automatically, eliminating buffering complaints.

Tech Stack

Next.js
Node.js
PostgreSQL
Redis
AWS MediaConvert
Stripe
AWS
CloudFront

How We Delivered It

Phase 1 — Weeks 1–5
Discovery & Content Migration

Audited all existing content sources and instructor workflows. Mapped course structure to a normalized schema. Designed the HLS transcoding pipeline and CDN strategy. Migrated 200+ courses from legacy systems.

Phase 2 — Weeks 6–16
Learner App & Admin CMS

Built the Next.js learner portal with course catalog, enrollment flow, and video player (HLS.js). Built the admin CMS for course creation, module ordering, and content upload. Implemented progress tracking and certificate generation.

Phase 3 — Weeks 17–28
Video Pipeline & Payments

Integrated AWS MediaConvert and CloudFront. Built Stripe subscription and one-time purchase flows. Implemented webhook handlers for payment events, access grants, and refunds. Added Redis caching for enrollment state.

Phase 4 — Weeks 29–36
Analytics, Testing & Launch

Built instructor dashboards for completion rates and engagement. Load-tested video delivery with 2K concurrent streams. Phased rollout — beta with 500 learners, then full launch to 12K+ enrollments.

The Impact

Content sprawl
Unified platform
500+ courses in single LMS
Video buffering
Adaptive HLS
Smooth streaming for 12K+ learners
Manual progress
Real-time tracking
Completion and engagement analytics
Payment failures
99.2% uptime
Stripe webhooks and retry logic
“We went from three different systems and spreadsheets to one platform that actually shows us how learners engage. The video streaming alone — no more buffering complaints. Our completion rates improved by 40% in the first quarter.”
— Head of Product, EdTech Company

What Made This Work

EdTech platforms look simple on the surface — courses, videos, progress bars — but the complexity comes from content lifecycle (upload, transcode, distribute), payment orchestration (subscriptions, upgrades, enterprise billing), and progress tracking at scale. Treating the video pipeline as a first-class service with event-driven transcoding meant we could add new formats (e.g., 4K) without rewriting the learner app.

Stripe webhooks were critical. We handle subscription created, updated, canceled, and payment failed events in a single idempotent handler. That ensures access grants and revocations stay in sync with billing, and failed payments trigger retries before learners lose access.

Progress tracking drove the biggest product improvement. By storing granular checkpoints — which videos were watched, how far, and quiz scores — we gave instructors actionable analytics. They could see drop-off points, identify struggling modules, and iterate on content. The client reported a 40% increase in certificate completions after launch.

Building an EdTech or Learning Platform?

We help education companies build production-grade LMS, video streaming, and payment systems. Let's talk about your architecture.

Book Strategy CallCase Studies