How To Host Your Podcast For Free On Github Pages

Rody Davis
4 min readApr 27, 2020

--

Do you have a story to tell and want to share it with the world but do not know where to start? Are you a developer looking to start a tech podcast? Are you looking to save money for hosting? Well this article is for you!

TL;DR; You can fork this repo and customize it for your podcast!

Github Pages allows you to host any website for free on Github. You can host any kind of file or content and will be distributed with Github CDN around the world. You can even setup your Podcast to release new content with Github Actions for each new episode.

Create New Repo

If you already familiar with Github you can skip this step.

Login or Create a free account for Github and follow the instructions for creating the repo.

Clone the Repo

Now that you have the repo created on Github, download the project using Github Desktop.

After it finishes downloading you can open up the project in your favorite text editor. In this example we will be using VSCode.

Create the Website

You can create the website with whatever tech stack you wish but in this example we will be using Flutter. You can skip this step if you do not want an online player.

Open up the project if you haven’t already with VSCode and open the terminal and type the following:

flutter create player

Once the process finishes then you can edit the application UI. Make sure you have Flutter installed.

Edit the website files to the following:

Setting up Github Actions

Create a new Github Action that will release the new episode pushed to the master branch. If you chose not to have a podcast player and just want to host the files then you can add the audio files and the rss feed directly to the gh-pages or master branch and the files will be hosted instantly. Regardless make sure you have a file call .nojekyll so the web deployment will be much faster.

Custom Domain

If you want to have your podcast hosted with a custom domain you can easily do this with Github pages. Follow this guide to set up your custom domain:

Releasing new Content

When you have a new episode to release the steps are very simple. Make sure to export your audio file to mono and use mp3 format so it is smaller that 100mb otherwise you will need to set up Git LFS for the repo.

Put the new mp3 audio file in the “player/web/audio” folder. Now edit the RSS feed which is located at “player/web/feed.xml” and add the following:

For every episode you just have to add a new item to the feed and change the info for the episode. I would suggest putting the new episodes at the bottom.

<item>      
<author>COMMA_SEPERATED_LIST_OF_AUTHORS</author>
<itunes:author>COMMA_SEPERATED_LIST_OF_AUTHORS</itunes:author> <title>PODCAST_EPISODE_TITLE</title>
<pubDate>Mon, 13 Apr 2020 13:00:00 GMT</pubDate>
<enclosure url="LINK_TO_AUDIO_FILE" type="audio/mpeg" length="34216300" />
<itunes:duration>54:08</itunes:duration>
<guid isPermaLink="false">cepod01</guid> <itunes:explicit>no</itunes:explicit>
<description>
Show Notes Here!
</description>
</item>

Publishing

Once your Github Action is finished building you now have an RSS feed that you can use to submit to Apple Podcasts, Google Podcasts and Spotify for Podcasters.

https://GITHUB_USERNAME.github.io/GITHUB_REPO/feed.xml

You can also use this RSS Feed link to support any podcast player!

Conclusion

Hopefully you can see now how easy it is to host your podcast for free on Github Pages. You can find the final code for this example here:

Live Example

My “Creative Engineering” podcast is hosted using this technique.

Google Podcasts

Spotify Podcasts

Apple Podcasts

--

--

Rody Davis
Rody Davis

Written by Rody Davis

I am a cross platform dev. I am currently using Flutter, Firebase, SQLite, Google Cloud Platform, Docker and WebAssembly. I am exploring Rust, C++, Go, WebXR.

Responses (2)