Bubble.io · Build an Online Course Platform in Bubble.io

How to Build an Online Course Platform in Bubble.io

Teachable and Kajabi charge transaction fees and limit customisation. A Bubble course platform takes 3-5 weeks, costs $119/month, and charges zero transaction fees. Complete data model, video lessons, purchase flow, progress tracking, certificates, and Lesson access control via privacy rules.

ZeroTransaction Fees
3-5 WeeksBuild Time
CompleteData Model
E-Learning on Bubble

Building Your Own Course Platform vs. Using Teachable or Kajabi

Online course platforms like Teachable, Kajabi, and Thinkific charge 5-10% transaction fees plus monthly platform fees, offer limited customisation, and own the relationship between you and your students. A Bubble-built course platform takes 3-5 weeks to build, costs $119/month for infrastructure, charges zero transaction fees, and gives you complete control over your student experience, pricing, and data. For course creators generating more than $3,000/month, a custom Bubble platform pays for itself in reduced platform fees within months.

The Course Platform Data Model

Every Type You Need

// Core course platform data types
Course

title, description, thumbnail
: text, text, image
slug
: text (url: /courses/slug)
instructor
: User
status
: option set (Draft / Published)
price
: number
stripe_price_id
: text (for payment)
total_lessons
: number (denormalised)
enrolled_count
: number (denormalised)

Module

course
-> Course
title
text
sort_order
number

Lesson

module
-> Module
title
text
content
text (rich HTML from Rich Text Editor)
video_url
text (YouTube embed or Vimeo)
duration_min
number
sort_order
number
is_preview
yes/no (free preview without purchase)

Enrollment

student
-> User
course
-> Course
enrolled_at
date
stripe_pi_id
text (payment record)

LessonProgress

student
-> User
lesson
-> Lesson
is_completed
yes/no
completed_at
date
Key Features to Build

What Makes a Course Platform Complete

📹

Video Lessons

Embed YouTube or Vimeo videos using the Bubble video element or an HTML iframe. Store the video URL on the Lesson record. For protected video (preventing download), use Vimeo Pro with domain restriction. Students cannot access lesson content without an active Enrollment record.

💰

One-Time Purchase

Stripe Checkout with mode=payment for a one-time course purchase. On checkout.completed webhook: create an Enrollment record linking the student to the course. The Enrollment record is the access key — its presence (or absence) determines what the student can see.

Progress Tracking

Track which lessons each student has completed via LessonProgress records. Show a progress bar on the course page: completed lessons / total lessons * 100. A ‘Mark as Complete’ button creates or updates the LessonProgress record.

🏆

Certificates

Generate a certificate PDF when a student completes all lessons in a course. Use PDF Conjurer plugin with a branded certificate template. Store the generated PDF URL on a Certificate record. Students can download from their profile page.

👥

Student Community

Discussion threads per lesson or per course. Students post questions; instructors and other students reply. Moderation tools for the instructor. Notification when someone replies to a thread the student participated in.

📈

Instructor Dashboard

Total enrollment count, revenue, lesson completion rates per lesson (which lessons have low completion?), student progress overview, and a content management view for adding/editing courses, modules, and lessons.

Access Control

Protecting Paid Content

// Privacy rule for Lesson: visible only to enrolled students
Condition 1
: This Lesson’s is_preview = yes (free preview)
Permissions
: Find ✓ View all fields ✓

Condition 2
: Search for Enrollments [
student = Current User,
course = This Lesson’s module’s course
]:count > 0
Permissions
: Find ✓ View all fields ✓
// Without an Enrollment record: non-preview lessons are invisible
// UI conditions also hide content but privacy rules are the security layer

Build Your Bubble.io App With Expert Help

Pakistan’s leading Bubble.io development team. Multi-tenant SaaS architecture, Stripe billing, and full product builds done right from day one.

Book a Free Discovery CallSee Our Work

How to Build an Online Course Platform in Bubble.io
Simple Automation Solutions · sasolutionspk.com

Simple Automation Solutions

Business Process Automation, Technology Consulting for Businesses, IT Solutions for Digital Transformation and Enterprise System Modernization, Web Applications Development, Mobile Applications Development, MVP Development