An example site for hosting a static site that has both a podcast feed and separate blog feed

Who is This For?

If you are an engineer thinking about launching a blog and/or podcast, this project is a great place to start. It really shines if you want to have a single unified web site for both a podcast feed and a blog feed. jekyll is a great static site generator for blogs. jekyll-octopod is a great jekyll plugin that adds almost everything you need to extend jekyll for hosting a podcast. But neither supports one site that has a separate blog and podcast feed. This modification/example does.

Here is a working example.

The intent of this sample project is to give you a jump start. Start with it, learn enough to control it, and build what you need. If you are a developer, you really should invest the modest amount of time to learn to use them to create the publishing setup that exactly fits your needs. The payoffs are a publishing workflow that is fast and minimal and lets you concentrate almost wholly on producing your content, and a savings of $10-40 a month vs. hosting and serving a blog and podcast episodes with a commercial hosting service.

This project is not a substitute for learning jekyll and jekyll-octopod. Both projects have excellent online documentation. To get started install jekyll, then go to the excellent jekyll-octopod site and follow the installation instructions. Then come back here, clone this repo into a directory, and start hacking.

What Unique Value Does This Project Provide?

This project modifies the underlying jekyll files to support having two feeds on your site, one for podcast entries and one for blog entries. You will see the included page is the listing page for podcast episodes, and the included page is the listing page for blog entries.

To create new podcast episodes, copy the provided _posts/ file, give it a name like, and modify the front matter appropriately. Copy your episode audio file into the episodes folder. The name of your audio file must match the value you provide for the key audio in the file YAML front matter.

To create new blog posts, copy the provided _posts/sample_post, and again rename and modify the front matter as desired.

The underlying includes and templates will handle the following:

  • episodes list in the episode feed which can be reached through the all_episodes page
  • blog posts list in the blog feed which can be reached through the blog page
  • the sidebar RSS links provide separate subscriptions to each feed

What Other Features Does This Project Provide?

Getting Site Search Working

This project also helps you jumpstart Google site search, by including a _plugins folder with the excellent json-feed-jekyll plugin in place. The included _config.yaml includes entries to configure this plugin. Complete documentation is here. To get site search working you need to do the following:

  • Create your initial content so you have something to index and something for users to search for
  • Run the octopod build which will cause the json-feed-jekyll plugin to generate a sitemap.xml file in your project root
  • Sign up for a Google Search Console account and follow the instructions to provide your domain(s). Upload the sitemap.xml file you generated as instructed.
  • Wait a couple of days

Starting With This -- Ending With Your Site

This working example also customizes many things relative to the default jekyll-octopod so you can learn from its code. Some examples:

  • Uses YAML front matter to customize the podigee audio player style
  • Customizes the icon in the browsable RSS feed
  • Makes many changes to the sidebar include and layout, including adding a second RSS feed, moving the search box into the sidebar, adding a second Twitter link, displaying different text and displaying a different show logo
  • Modifies the behavior of selected entries in listings to not hyperlink their title text