How to build an app like Udemy: features, tech stack, and cost
- Ashit VoraBuild & ShipLast updated on

Summary
Building an app like Udemy requires a two-sided marketplace with separate student and instructor experiences, a video hosting and delivery pipeline, a payment split system (typically 30–50% platform take), and a course approval workflow. An MVP costs $45,000–$90,000 and takes 14–20 weeks. A full marketplace with mobile apps and instructor payouts costs $120,000–$250,000. The hardest parts are video encoding at scale, mobile video performance, and cross-border payment splits.
Key Takeaways
A Udemy-style marketplace is two products: a student product (browse, buy, learn) and an instructor product (build, publish, earn). Underbuilding the instructor side starves your supply.
Video delivery is not just storage — adaptive bitrate encoding, CDN distribution, and DRM protection are each separate engineering problems that need dedicated infrastructure.
Payment splits across countries require a marketplace payment layer (Stripe Connect or similar) — standard checkout flows cannot handle multi-party payouts.
Curated platforms (Masterclass model) cost 30–50% less to build than open marketplaces because you skip creator onboarding, course approval workflows, and payout logic at scale.
Content moderation at scale is an operational problem, not just a technical one — build the admin tooling for it from day one, not as an afterthought.
Online learning is a market that will not slow down. Estimates put it at $848B by 2030. Udemy alone has 62 million students and 73,000 instructors. Masterclass built a $2.5B business on 200 hand-picked creators.
The question isn't whether there's demand. It's whether you understand what you're actually building before you start.
Most teams that come to us with "build a course platform" have planned the student experience and not touched the instructor side. That imbalance is where marketplaces die — because instructors are your supply, and no supply means no marketplace.
TL;DR
Two platform models — different architecture, different business
Before you talk stack, decide which business you are building.
Open marketplace (Udemy model): Any qualified instructor can apply, create courses, and sell them. The platform earns a revenue share. You need creator onboarding, course submission and approval workflows, a self-serve course builder, instructor analytics, and automated payout management. The catalogue can grow to thousands of courses, which means you also need serious search infrastructure.
Curated platform (Masterclass model): You invite creators. You may co-produce content. The catalogue is small, the production value is high, and access is often sold via subscription. You skip most of the creator self-service infrastructure. Build costs are lower — roughly 30–50% less — but your operational model depends on partnerships and production quality, not platform network effects.
Most teams want the Udemy model because it scales without an ops team managing each creator relationship. Most teams also underestimate what that model actually requires. The comparison below makes the difference concrete.
| Feature | Open marketplace (Udemy) | Curated platform (Masterclass) |
|---|---|---|
| Creator onboarding | Self-serve with approval workflow | Invite-only, manual |
| Course builder | Full self-serve UI | Optional — content may be uploaded by ops |
| Payout system | Automated, per-sale splits | Flat fee or licensing deal |
| Content moderation | At scale, automated + human | Small team review |
| Search infrastructure | Needed at 200+ courses | Optional for small catalogue |
| Revenue model | Per-course + platform cut | Subscription or per-course |
Student-side features
The student experience is the visible half of the product. It needs to cover five areas.
Course discovery and search
Students browse by category, search by keyword, and filter by rating, price, and skill level. At under 200 courses, a PostgreSQL full-text search is enough. Above that, you need dedicated search infrastructure — Elasticsearch or Algolia — with proper indexing on title, description, tags, and instructor name.
The course card matters: thumbnail, title, instructor name, rating (star + count), price, and a short preview line. Students scan a page of cards before committing to click. Get this UI right.
Preview and purchase flow
Students can preview the first one to three lectures before buying. This is non-negotiable — it's how they decide whether to purchase. The preview system needs to serve partial video access without exposing the full course to non-paying users.
The purchase flow is standard Stripe Checkout in its simplest form. Complexity comes when you add coupons (instructor-generated discount codes), bundle pricing, or subscription access. Build one-time purchase first.
Course player
This is the heart of the student experience. A weak player kills completion rates faster than bad content.
The player needs: video playback with quality selection (360p to 1080p), playback speed control (0.5x to 2x), a progress tracker that resumes exactly where the student left off, a notes panel alongside the video, a Q&A section per lecture, and downloadable resources attached to lessons.
On mobile, offline download — saving encrypted video for airplane mode — is expected. It adds 4–6 weeks of development.
Progress tracking and certificates
The system tracks completion per lecture and per course. A lecture is typically "complete" when 80% of the video is watched or a quiz is passed. Course completion unlocks a certificate.
Certificates are auto-generated PDFs with a unique verification ID. Simple to describe, mildly annoying to build — you need a PDF generation pipeline (Puppeteer works), a certificate template renderer, and a verification URL that employers can check.
Student-side MVP features
- ✓Course catalogue with category filtering and keyword search
- ✓Course detail page with preview video (first 1–3 lectures)
- ✓Stripe Checkout for one-time course purchase
- ✓Video player with quality selection and playback speed
- ✓Per-lecture progress tracking with resume-from-last-position
- ✓Notes panel alongside video
- ✓Q&A per lecture (student asks, instructor answers)
- ✓Course completion certificate (auto-generated PDF)
- ✓Student dashboard showing enrolled courses and progress
Instructor-side features
Instructors are your supply. If building and managing courses is painful, they leave — and your catalogue empties.
Course builder
The course builder is a drag-and-drop interface for structuring a course into sections and lectures, uploading video files, adding resources (PDFs, code files, slides), and creating quizzes.
Video upload is where most teams underestimate scope. You need a chunked upload system (large files require resumable uploads), a transcoding pipeline that converts raw video to adaptive bitrate formats, and a processing status indicator so instructors know when their video is ready. The managed video platforms (Mux, Bunny.net, Cloudinary) handle transcoding for you. Rolling your own is a 6–8 week project and only makes sense at very high volume.
Instructor dashboard
Instructors need to see: total enrollments, revenue (gross and net), revenue split by course, review ratings, and student Q&A pending response. A simple analytics view — enrollment trend over 30/90 days — is expected from day one.
Payout system
This is the most technically demanding piece of the instructor side. Every sale generates a split: the platform takes its cut (30–50% on open marketplaces), the instructor receives the remainder.
You cannot handle this with a standard checkout flow. You need a marketplace payment layer. Stripe Connect is the standard — instructors create a Connected Account, students pay the platform, and the platform routes instructor earnings on a weekly or monthly schedule. Stripe handles currency conversion, local bank account payouts in 40+ countries, and tax form generation (1099 in the US).
Stripe Connect adds approximately 0.25% to your payment processing cost on top of standard Stripe fees.
Instructor-side MVP features
- ✓Course builder: section and lecture ordering, video upload, resource attachments
- ✓Chunked video upload with processing status indicator
- ✓Quiz creator (multiple choice, true/false)
- ✓Course pricing configuration and coupon code generation
- ✓Instructor dashboard: enrollments, revenue, ratings
- ✓Q&A management: view and respond to student questions
- ✓Stripe Connect onboarding for instructor payouts
- ✓Payout history and scheduled release view
Admin and marketplace features
Course approval workflow
Open marketplaces need a quality gate. Instructors submit a course, an admin reviews it (content quality, accurate description, proper structure), and approves or rejects with feedback. This workflow — submission queue, review UI, approval/rejection with notes, instructor notification — is a week of work and often skipped entirely in early builds. Skip it and you will spend months manually managing a broken inbox-based process instead.
Revenue split management
Admins configure the platform's revenue share globally and per-instructor (for featured creators who negotiate custom terms). The split logic feeds into every payout calculation. Build it as a configurable parameter, not a hardcoded number.
Search and SEO
Course pages need to be indexable. Udemy gets significant traffic from Google. Your course titles, descriptions, and landing pages need clean server-rendered HTML (Next.js App Router handles this), structured metadata, and schema markup.
Internal search needs relevance tuning — a search for "Python for beginners" should surface entry-level Python courses, not advanced certification prep. This requires weighting on title match, rating, enrollment count, and recency.
Refund management
Udemy offers a 30-day refund policy. Most jurisdictions require some form of consumer refund rights on digital goods. Your admin panel needs a refund processing interface: trigger a refund, claw back the instructor payout if it has already been released, and update revenue reporting.
Tech stack
| Layer | Technology |
|---|---|
| Web frontend | Next.js (App Router) — SEO-critical for course pages |
| Mobile | React Native — iOS and Android from one codebase |
| Backend API | Node.js (Express or Fastify) |
| Database | PostgreSQL |
| Video hosting | Mux, Bunny.net, or Cloudinary (start with managed; build custom at scale) |
| Video DRM | Mux DRM (Widevine + FairPlay) for premium content |
| Search | PostgreSQL FTS for MVP; Elasticsearch at 500+ courses |
| Payments | Stripe Connect for marketplace splits and payouts |
| Storage | S3 + CloudFront for course thumbnails, resources, certificates |
| SendGrid or Postmark | |
| Infrastructure | Vercel (frontend) + AWS (backend + video pipeline) |
Start with a managed video platform
Mux and Bunny.net handle transcoding, adaptive bitrate delivery, CDN, and analytics out of the box. The engineering time saved — 6–8 weeks minimum — is worth more than the hosting cost at early scale. Revisit self-hosted at 50,000+ monthly viewing hours.
The hard parts nobody plans for
Video encoding and CDN delivery
A student in Mumbai watching a course recorded in London needs the video to load fast and play smoothly on a 4G connection. That requires adaptive bitrate streaming — the video automatically switches between 360p and 1080p based on available bandwidth — served from a CDN node geographically close to the student.
Raw video files from instructors arrive in every format and codec imaginable. Your ingestion pipeline needs to normalize all of them into HLS or DASH format for adaptive streaming. Managed platforms (Mux, Bunny.net) do this automatically. Rolling your own means building an FFmpeg pipeline, managing encoding queues, and handling failures at every step.
Mobile video performance
Mobile video has specific failure modes that desktop does not: background audio (screen locked, still listening), picture-in-picture, offline download, and cellular data warnings before streaming high-quality video.
React Native gives you the web and mobile codebase sharing, but video playback on mobile requires the native video player (react-native-video), which has its own quirks per platform. Budget an extra 3–4 weeks to get mobile video right — not just working, but smooth.
Payment splits across countries
An instructor in Brazil, a student in Germany, a platform incorporated in the US. Stripe Connect handles the mechanics, but you still need to configure: which currencies you accept, how currency conversion affects the instructor's payout, what VAT rules apply (EU digital goods VAT is a real compliance requirement), and how to generate correct tax forms per country.
This is not a weekend project. Budget 4–6 weeks for a payment system that handles international creators properly.
Content moderation at scale
At 73,000 instructors and growing, Udemy cannot manually review every course update. Neither can you, eventually. Build the admin tooling for content flagging (students can report a lecture), bulk review queues, and automated quality checks (minimum video resolution, minimum lecture count per course) from day one. Adding them after launch means backfilling a broken process.
Cost breakdown
Udemy-style platform cost by scope
Course catalogue, video player (managed hosting), one-time payments, progress tracking, certificates, and basic instructor upload. No mobile app, no instructor dashboard, no payout system. Timeline: 14–20 weeks.
Self-serve course builder, Stripe Connect onboarding, payout scheduling, instructor analytics, and course approval workflow. Adds 8–12 weeks.
React Native apps with offline video download, push notifications, and mobile-optimized course player. Adds 10–14 weeks.
Elasticsearch integration, relevance tuning, collaborative filtering recommendations, and search analytics. Adds 8–12 weeks.
EU VAT handling, multi-currency payouts, tax form generation per jurisdiction. Adds 4–6 weeks.
Full two-sided marketplace (student + instructor, mobile apps, payouts): $120K–$250K over 24–36 weeks. Udemy-scale with ML recommendations and 100K+ course support: $500K+. These are production numbers, not demo numbers.
Build phases
Phase 1 — Student-side MVP (14–20 weeks)
Course catalogue, video player, purchase flow, progress tracking, and certificates. Instructor uploads happen through an ops-assisted process — no self-serve builder yet. Validate that students want to learn on your platform before building the full creator economy.
Phase 2 — Full instructor product (8–12 weeks)
Self-serve course builder, Stripe Connect payouts, instructor analytics dashboard, Q&A management, and course approval workflow. This is when your platform becomes a real marketplace.
Phase 3 — Scale and mobile (10–14 weeks)
Mobile apps, offline video download, advanced search, recommendation engine, and promotional tooling (coupons, featured placements, affiliate programs).
Where most builds go wrong
Skipping the instructor side in phase 1 and never catching up. The phased approach makes sense for validation, but some teams never build the real instructor product. They end up with a catalogue locked to a fixed set of courses and no path to marketplace growth.
Building a custom video player. Standard players (native video element, Video.js) handle 95% of use cases. Custom players are a multi-month project that rarely pays off unless you have very specific branding or feature requirements.
Ignoring mobile video until late. React Native shares your logic, but video playback on mobile has platform-specific behaviors that need dedicated testing time. Plan for it, do not discover it in QA week.
Hardcoding the revenue split. It will change — when you recruit a featured creator, run a promotional period, or enter a new market. Configure it as a parameter from day one.
At RaftLabs, we've built SaaS products and marketplace platforms across industries. If you're planning a course marketplace or edtech platform and want a realistic scope and cost estimate, talk to a founder directly — no sales team, no follow-up sequence.
For related reading: how to build an e-learning platform covers the broader LMS landscape, and our SaaS app development cost guide has line-item cost benchmarks for common features.
Frequently Asked Questions
- An MVP with one-sided marketplace, basic video hosting, course player, and payment processing costs $45,000–$90,000 over 14–20 weeks. A full two-sided marketplace with instructor tools, mobile apps, and payout management costs $120,000–$250,000 over 24–36 weeks. A platform at Udemy's scale with ML recommendations and 100,000+ course support costs $500,000 or more. The biggest cost drivers are video infrastructure and payment split architecture.
- Udemy is an open marketplace — anyone can apply to become an instructor and publish courses. Masterclass is a curated platform — creators are invited, content is produced professionally, and the platform controls the catalogue. Open marketplaces need creator onboarding flows, course approval workflows, self-serve dashboards, and automated payout systems. Curated platforms skip most of that and focus on production quality. The business model differs too — Udemy takes 37% on organic sales, Masterclass uses a subscription model.
- Udemy takes 37% on organic platform sales and 3% when an instructor drives the sale via their own coupon. The platform keeps the rest. Your marketplace can define any split — 70/30, 80/20, or a tiered model based on performance. The technical implementation uses a marketplace payment platform like Stripe Connect: students pay the platform, the platform routes the instructor share to their bank account on a weekly or monthly schedule.
- Most course platforms use Next.js or React for the web frontend, React Native for mobile apps, Node.js for the backend API, PostgreSQL for structured data, and a dedicated video platform like Mux or Bunny.net for hosting and delivery. Stripe Connect handles marketplace payments and instructor payouts. Elasticsearch powers search once the catalogue grows past a few hundred courses. Start with a managed video platform — building your own transcoding pipeline is a multi-month project.
- A focused MVP with student-side features only (catalogue, course player, payments) takes 14–20 weeks. Adding the full instructor dashboard, payout system, and mobile apps extends the timeline to 24–36 weeks. A platform at Udemy scale with advanced search, ML recommendations, and international payment support is a 12+ month build. The longest tasks are video infrastructure setup, Stripe Connect onboarding for instructors, and mobile video performance.


