PLAY PODCASTS
CourseMaker Is an Online Course Builder for Technical Makers

CourseMaker Is an Online Course Builder for Technical Makers

with Nick Janetakis and Chris Samiullah

Running in Production · Nick Janetakis

June 21, 20211h 31m

Show Notes

In this episode of Running in Production, Chris Samiullah goes over building a video course hosting platform with FastAPI, Strapi and Gatsby. It’s hosted on ECS along with a bunch of AWS resources. It’s been running in production since early 2021.

Chris talks about combining a Gatsby static site with FastAPI, using AWS Fargate, streaming videos with Cloudflare, supporting both Stripe and Paddle, using a bit of Serverless Lambdas and tons more.

Topics Include

  • 3:19 – Hiring outside contractors to tackle setting up the infrastructure
  • 5:05 – Motivation for choosing Strapi, FastAPI, React, Gatsby and more
  • 9:37 – Strapi is being used as a headless CMS for the student watching front-end
  • 10:33 – Going over how the student watching experience is set up
  • 14:20 – Creating a course preview with Fargate using sub-domains and DNS entries
  • 16:35 – A couple Gatsby plugins that helped build the site
  • 18:57 – A couple of Python libraries to help build out the FastAPI back-end
  • 20:54 – Using Cloudflare for streaming the videos and Shaka as the video player
  • 26:39 – Stripe and Paddle are being used to handle payments (including VAT)
  • 37:35 – About 20k lines of Python and 10k lines of front-end / React code
  • 39:53 – Everything is Dockerized, there’s PostgreSQL and an ALB too
  • 43:30 – Using Let’s Encrypt and letting course owners hook up custom domain names
  • 45:05 – Reasons for choosing AWS and ECS (hosting is about $100 to $150 a month)
  • 51:45 – Having a dev (staging) server and production in different regions
  • 53:27 – What it’s like coding things up in development and pushing them to production
  • 58:42 – The dev experience for using AWS Lambdas and creating internal tooling
  • 1:05:59 – On-boarding new authors (doing something that doesn’t scale but it works now)
  • 1:10:33 – A public service announcement about database migrations
  • 1:13:13 – FastAPI has been working very nicely
  • 1:16:41 – Backing up the database and user generated files
  • 1:19:56 – Using Sentry for tracking errors and getting notified over Slack
  • 1:25:35 – Best tips? Pick a hosting infrastructure that fits your project
  • 1:27:44 – Picking between ECS and EKS was left to the contractor
  • 1:30:03 – Check out https://coursemaker.org/, Chris is on Twitter and LinkedIn too
📄 References
⚙️ Tech Stack