Content and creators

Tech stack for an online course platform (2026)

Course platform for independent instructors, designed by StackPrism from one sentence: 11 components, a reason for each, and the live checks that watch them.

The stack

  • Next.js
  • FastAPI
  • Inngest
  • Upstash
  • PostgreSQL
  • Supabase
  • Resend
  • Mux
  • Clerk
  • Stripe
  • Sentry
E-learningVideoPythonUpdated
The idea someone typed
“An online course platform where instructors publish video lessons and quizzes, students buy courses, track their progress and earn certificates, and instructors get paid out every month.”

Their answers on the constraints step

What they know
Python

Make it yours. Open this stack in the editor to check its health, harden it and hand it to your coding agent. No sign-up, nothing to generate.

Start from this stack
goes down

Select a component to see what it does and what it connects to, or pick one above to see what breaks if it goes down. Pinch or use the buttons to zoom.

Why this stack

Students and instructors use one Next.js app and sign in with Clerk. Behind it sits a FastAPI service in Python, the language the team knows, which keeps courses, enrolments, progress and quiz results in PostgreSQL. Mux hosts and streams the lesson videos, and other files go to Supabase Storage. Stripe takes course payments and pays instructors out, and its webhooks tell the API when money moves. Inngest runs background work such as course emails through Resend, Upstash Redis caches hot data, and Sentry reports errors.

Why each piece

All 11 components on the diagram: what each one does, what it talks to, and what stops if it goes down.

  1. Next.js Web App

    Student and instructor UI. Calls Clerk (auth), FastAPI App and Sentry (errors).

    Nothing else on the diagram depends on it.

  2. FastAPI App

    In Backend Services

    Core API service. Calls Inngest (triggers), Sentry (errors), Clerk (verifies), Stripe (charges), PostgreSQL (reads/writes), Upstash Redis (caches), Supabase Storage (files), Mux (streams) and Resend (emails). Called by Next.js Web App and Stripe (webhooks).

    If it goes down, 1 of 10 components stops working.

  3. Inngest

    In Backend Services

    Async workflows. Calls Resend (emails). Called by FastAPI App (triggers).

    If it goes down, 1 of 10 components degrades.

  4. Upstash Redis

    In Data & Storage

    Caching and rate limits. Called by FastAPI App (caches).

    If it goes down, 1 of 10 components degrades.

  5. PostgreSQL

    In Data & Storage

    Primary relational data. Called by FastAPI App (reads/writes).

    If it goes down, 2 of 10 components stop working.

  6. Supabase Storage

    In Data & Storage

    Media and files. Called by FastAPI App (files).

    If it goes down, 1 of 10 components degrades.

  7. Resend

    In External Services

    Transactional email. Called by Inngest (emails) and FastAPI App (emails).

    If it goes down, 2 of 10 components degrade.

  8. Mux

    In External Services

    Video hosting. Called by FastAPI App (streams).

    If it goes down, 1 of 10 components degrades.

  9. Clerk

    In External Services

    Authentication provider. Called by Next.js Web App (auth) and FastAPI App (verifies).

    If it goes down, 2 of 10 components stop working.

  10. Stripe

    In External Services

    Payments and payouts. Calls FastAPI App (webhooks). Called by FastAPI App (charges).

    If it goes down, 1 of 10 components degrades.

  11. Sentry

    Error tracking. Called by FastAPI App (errors) and Next.js Web App (errors).

    If it goes down, 2 of 10 components degrade.

When this stack fits

  • Video is the core content, and you’d rather not build encoding and streaming yourself.
  • Instructors need to be paid out, not just students charged.
  • Your team writes Python.

When to pick something else

  • You’re one instructor selling your own courses: a hosted course platform gets you selling without building one.
  • You need interactive live classes: that takes a video calling service, which this diagram doesn’t include.

What you need to build this

11 components across 9 areas of the stack.

Build it with your AI agent

Hand the stack to Claude Code, Codex, Cursor or any coding agent as a brief: how it connects, install steps and a build plan.

Frontend1

  • Next.js Web App

    Student and instructor UI

    npm install next

    Docs

Backend & APIs3

  • FastAPI App

    Core API service

    pip install fastapi

    Docs
  • Inngest

    Async workflows

  • Mux

    Video hosting

Data1

  • PostgreSQL

    Primary relational data

    Docs

Cache & queues1

  • Upstash Redis

    Caching and rate limits

    Docs

Auth1

  • Clerk

    Authentication provider

    npm install @clerk/nextjs

    Docs

Payments1

  • Stripe

    Payments and payouts

    pip install stripe

    Docs

Email & messaging1

  • Resend

    Transactional email

Storage & CDN1

  • Supabase Storage

    Media and files

    npm install @supabase/supabase-js

    Docs

Observability1

  • Sentry

    Error tracking

    pip install sentry-sdk

    Docs

Install

npm install next @clerk/nextjs @supabase/supabase-js
pip install fastapi stripe sentry-sdk

SDKs only. Pick your own database driver or ORM.