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

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

Update: 2021-09-13
Share

Description

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



Links



📄 References




⚙️ Tech Stack


Comments 
In Channel
loading
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

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

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