Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A starter template to help create a video course with Mux + Next.js
Video Course Starter Kit is a boilerplate project from Mux that shows how to build a membership-gated video course platform using Next.js and Mux's video APIs. It's an open-source GitHub repository that combines a modern TypeScript stack with Mux's streaming and upload infrastructure so you can go from repo clone to a working course site.
The Video Course Starter Kit is a starter template that demonstrates how to use Next.js and Mux together to create your own video course platform. It takes your Mux video assets and GitHub-authenticated users as inputs, and produces a deployable Next.js application that can upload, encode, and play back course videos. The project was built by Mux and is available on GitHub under the muxinc organization.
The template stands out because it pairs a full-stack Next.js application with Mux's specialized video tooling. Key features include:
/api/webhooks/mux to receive video status updates, with instructions for testing locally using ngrok.The README walks you through a detailed setup: clone the repo, install dependencies with Yarn, create a .env.local file with Mux tokens, a Planetscale database connection string, and GitHub OAuth credentials. You then run a local proxy to your Planetscale database and start the dev server with yarn dev. Mux webhooks notify the app of video asset changes, and the Prisma schema can be modified and pushed using the provided CLI commands.
Yes. Mux encodes and serves all videos for the course, so you must sign up for a Mux account. The README notes that signing up gives you $20 in complimentary credits to get started.
No. The described stack covers authentication, video upload/playback, and database persistence, but there is no billing or payment integration included. You'd need to add that yourself if you plan to sell courses.
Yes, the setup instructions explicitly mention adding your environment variables to Vercel when deploying a production copy. Since it's a Next.js app, it deploys directly on Vercel.
Planetscale, a MySQL-compatible serverless database, is the data layer. Prisma is used as the ORM, and the repo includes a workflow for creating branches, pushing schema changes, and making deploy requests using the Planetscale CLI.
