Running in Production
Running in Production
Nick Janetakis - Full stack developer
Creating a Video Course Hosting Platform to Learn Go
1 hour 20 minutes Posted Aug 3, 2020 at 4:00 am.
– Creating a custom platform lets Jon come up with new blog post / course ideas
– It has roughly 15,000 active users and he built 2 separate platforms initially
– Motivation for using Golang and figuring out when to add new features
– Using Gumroad licenses to handle course access for users
– It’s a monolithic app that was rewritten a few times to be ~15k LOC
– Sweating over hello world requests per second benchmarks isn’t worth it
– Server rendered templates using Golang’s template package + gotchas
– Using TailwindCSS with PostCSS and Vimeo / YouTube for the videos
– Using Golang’s built in web server and SQLite as a primary database
– Only tracking stats about users that Jon plans to act on
– Caddy sits in front of the Golang web server and deals with SSL certificates
– Docker is being used in the React / PostgreSQL code update
– Working with DigitalOcean block storage volumes and Spaces (S3-like object store)
– The single $5 / month server is running Ubuntu 14.04 LTS and was set up manually
– The deploy process from development to production
– Spend your innovation tokens wisely
– How Jon assembles his courses with data structures in his source code
– Daily backups of the droplet and how Jon deals with logging / errors / email
– Best tips? Start simple and really stick to it
– Jon is on Twitter at @joncalhoun and check out his site at https://www.calhoun.io/
0:00
1:20:01
Download MP3
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:19:13 – Jon is on Twitter at @joncalhoun and check out his site at https://www.calhoun.io/
Links
πŸ“„ References
https://github.com/heartcombo/devise
https://github.com/gorilla
https://gobuffalo.io/en/
https://mcfunley.com/choose-boring-technology
βš™οΈ Tech Stack
golang →
react →
caddy →
convertkit →
digitalocean →
docker →
gumroad →
logdna →
mailgun →
slack →
sqlite →
systemd →
tailwindcss →
ubuntu →
vimeo →
πŸ›  Libraries Used
https://github.com/gorilla/mux
https://gorm.io/
Support the Show
This episode does not have a sponsor and this podcast is a labor of love. If
you want to support the show, the best way to do it is to purchase one of my
courses or suggest one to a friend.
Dive into Docker is a video course that takes you from not knowing what Docker is
to being able to confidently use Docker and Docker Compose for your own apps.
Long gone are the days of "but it works on my machine!". A bunch of follow
along labs are included.
Build a SAAS App with Flask is a video course where we build a real
world SAAS app that accepts payments, has a custom admin, includes high test
coverage and goes over how to implement and apply 50+ common web app features.
There's over 20+ hours of video.