PLAY PODCASTS
Creating a Video Course Hosting Platform to Learn Go

Creating a Video Course Hosting Platform to Learn Go

with Nick Janetakis and Jon Calhoun

Running in Production · Nick Janetakis

August 3, 20201h 20m

Show Notes

In this episode of Running in Production, Jon Calhoun talks about building his video course platform with Golang. It’s hosted on a single DigitalOcean droplet and has been up and running in production since 2016.

Jon covers keeping it simple with a monolithic app that was rewritten a few times, using SQLite as his main database even with 15,000+ active users and spending his innovation tokens wisely.

Topics Include

  • 1:28 – Creating a custom platform lets Jon come up with new blog post / course ideas
  • 4:51 – It has roughly 15,000 active users and he built 2 separate platforms initially
  • 11:02 – Motivation for using Golang and figuring out when to add new features
  • 13:17 – Using Gumroad licenses to handle course access for users
  • 15:19 – It’s a monolithic app that was rewritten a few times to be ~15k LOC
  • 25:09 – Sweating over hello world requests per second benchmarks isn’t worth it
  • 28:24 – Server rendered templates using Golang’s template package + gotchas
  • 33:46 – Using TailwindCSS with PostCSS and Vimeo / YouTube for the videos
  • 36:56 – Using Golang’s built in web server and SQLite as a primary database
  • 39:00 – Only tracking stats about users that Jon plans to act on
  • 43:01 – Caddy sits in front of the Golang web server and deals with SSL certificates
  • 44:57 – Docker is being used in the React / PostgreSQL code update
  • 49:13 – Working with DigitalOcean block storage volumes and Spaces (S3-like object store)
  • 55:23 – The single $5 / month server is running Ubuntu 14.04 LTS and was set up manually
  • 59:11 – The deploy process from development to production
  • 1:04:25 – Spend your innovation tokens wisely
  • 1:06:22 – How Jon assembles his courses with data structures in his source code
  • 1:12:24 – Daily backups of the droplet and how Jon deals with logging / errors / email
  • 1:18:09 – Best tips? Start simple and really stick to it
  • 1:19:13 – Jon is on Twitter at @joncalhoun and check out his site at https://www.calhoun.io/
📄 References
⚙️ Tech Stack