CourseMaker Is an Online Course Builder for Technical Makers
Update: 2021-06-21
Description
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
Links
📄 References
- https://www.gatsbyjs.com/docs/conceptual/how-shadowing-works/
- https://github.com/encode/starlette
- http://paulgraham.com/ds.html
⚙️ Tech Stack
Comments
Top Podcasts
The Best New Comedy Podcast Right Now – June 2024The Best News Podcast Right Now – June 2024The Best New Business Podcast Right Now – June 2024The Best New Sports Podcast Right Now – June 2024The Best New True Crime Podcast Right Now – June 2024The Best New Joe Rogan Experience Podcast Right Now – June 20The Best New Dan Bongino Show Podcast Right Now – June 20The Best New Mark Levin Podcast – June 2024
In Channel