PLAY PODCASTS
Running in Production Is a Podcast Where Devs Chat about Tech Stacks

Running in Production Is a Podcast Where Devs Chat about Tech Stacks

with Nick Janetakis and Nick Janetakis

Running in Production · Nick Janetakis

September 13, 202155m 54s

Show Notes

In this episode of Running in Production, Nick Janetakis goes over building a podcast site with Jekyll and Ruby. It’s hosted on a single DigitalOcean server and has been running in production since October 2019.

Nick talks about what it takes to release an episode, keeping things simple, developing a custom audio player, hosting a bunch of sites on a single DigitalOcean server with nginx, using shell scripts to help reduce human errors and more.

Topics Include

  • 2:06 – The podcast is not sponsored and it’s done in Nick’s spare time after hours
  • 2:30 – What’s involved end to end to put together an episode
  • 8:50 – Each episode gets about 400 downloads or listens but it’s hard to track
  • 10:41 – Motivation for using Jekyll and Ruby
  • 13:03 – A couple of custom Jekyll plugins to help building a podcast site
  • 16:55 – So many static generators to choose from, just pick one
  • 18:09 – Use the tools that you like and don’t constantly second guess yourself
  • 19:34 – What is Liquid (Jekyll’s templating language)?
  • 21:01 – The custom audio player is the only real amount of JavaScript on the site
  • 25:42 – Jekyll-Assets is being used to MD5 tag static file names for cache busting
  • 26:34 – nginx is serving the site with Let’s Encrypt handling the SSL certificates
  • 28:12 – The only SAAS tool being used is Google Analytics but I don’t use it for much
  • 29:20 – A few static sites are all hosted on a $5 / month DigitalOcean server
  • 32:06 – The server load is at 2-3% CPU with 60,000+ monthly visitors
  • 33:06 – Debian Bullseye is running on the server
  • 34:38 – Ansible is used to provision the server
  • 38:47 – Deploying a new podcast episode to the site
  • 41:59 – Making sure all tags are properly filled out
  • 43:46 – Another shell script to auto-inject an episode’s length and file size in bytes
  • 46:55 – There’s no secret management because there’s no secrets
  • 47:29 – The code is backed up on GitHub and an external USB HDD
  • 49:54 – DigitalOcean’s built in monitoring and alerting as well as Uptime Robot is being used
  • 52:34 – Best tips? Find tools that you’re genuinely happy using and stick with them
  • 54:39 – You can find Nick on his site, @nickjanetakis on Twitter and nickjj on GitHub
📄 References
⚙️ Tech Stack