Podcasts is an offline-capable, entirely HTML5/JS audio app. It's chiefly designed for Firefox OS, but support for other platforms and browsers is an eventual design goal. It allows users to subscribe to any podcast and listen to it right from their device!

View on the Firefox Marketplace.
Read the full developer walkthrough.

Difficulty: Advanced

Code Breakdown:

  • 4% HTML/EJS
  • 6% CSS
  • 90% JavaScript


Web API Usage

Used to store settings and basic podcast metadata. Not used for podcast audio files or cover art.
An asynchronous and fast datastore for maintaining podcast audio and images.
Allows cross-domain requests on Firefox OS without CORS.

Folder Structure

  - locales/ (Translation files)
  - test/ (Marionette integration and UI tests)
  - www/ (client-side code/styles)
  - www/index.html (base HTML file)
  - www/gaia/ (Gaia UI files)
  - www/js/templates/ (EJS/HTML templates)

Podcasts is a packaged app, so it requires a build step to be installed to Firefox OS. The Makefile contains a multi-step process that will create a www-built folder used to install the app on a phone or the Firefox OS Simulator.

Third-party Libraries

The lightweight jQuery-like library simplifies common tasks such as DOM manipulation.
Backbone lets us do data-binding and MVC-style coding, making the app a lot easier to develop.

Document Tags and Contributors

Contributors to this page: chrisdavidmills, cvan
Last updated by: chrisdavidmills,