Pod Monster
Mission
Pod Monster is a consumer-focused, web-first, mobile-first application that aims at creating an accessible, lightweight, straightforward, and uncomplicated experience to manage and consume podcasts.
How it works
Pod Monster relies on the Podcast Index for retrieving all of its data about podcasts to perform things like search, podcast lookups, and episode lookups.
When you “subscribe” to a podcast, it will appear in your “Subscriptions” list for easy access. Subscribing is and will always be free and private. Currently, settings and subscriptions exist only on your device. In the future, you will have the option of creating an account that will allow a more reliant layer of persistence (see “Known Issues”) and the synchronization of settings and subscriptions between devices.
Releases
Pod Monster is currently in its “alpha” phase. This means:
- It is available for public testing and use.
- You can expect all changes that land to be stable.
- There are core features that have not yet been implemented, and the features that have been implemented are subject to frequent changes.
Principles
- No account is required to subscribe to or listen to podcasts (though certain limits may need to be imposed eventually due to browser restrictions).
- None of your usage data or personal information will ever be sold to a third party or used to sell you third-party products.
- The interface is intentionally minimal and plain to prevent distractions from information that isn't relevant to the podcast or episode.
- Wherever possible, the interface uses standard, native web controls in place of custom JavaScript-based controls. The goal is to give you an accessible experience that feels familiar and comfortable, not custom.
- Every consumer-focused feature of the Podcast Index is in the plans, and I will implement them in the order that I see fit.
Known Issues
All settings, including subscriptions, are currently stored in LocalStorage, making them reasonably persistent. Unfortunately, browser processes like “data eviction” and “Intelligent Tracking Prevention”, can clear them at any time. Using the site often is a great signal to your web browser that Pod Monster's storage should be persistent. Still, there is no surefire way to keep reliably persistent data in a web browser. For this reason, I encourage you to keep an OPML back-up of your subscriptions, just in case your subscriptions get wiped out. OPML is also a great way to experiment with different podcast apps!
In the future, the plan is to fix this in two ways. First, migrating from LocalStorage to IndexedDB will increase storage limits, which should help avoid data eviction. And, second, adding user accounts to allow off-device storage and synchronization of data between devices.
Technologies
The following is a list of technologies, projects, or services used within this project that I endorse and recommend for others.
- The Podcast Index is the open API that provides all the podcast data for this application. Pod Monster would not be possible without it. Anytime you search for a podcast, browse a podcast feed, or listen to an episode, you're viewing information provided by the Podcast Index.
- TypeScript allows you to write statically-typed JavaScript and, when used in strict mode, eliminates an entire category of possible errors.
- Next.js is a framework for building full-stack web applications in React. It includes technologies like server-side rendering, static generation, incremental static regeneration, API routes, and automatic image optimization, all of which make building a performant application much more manageable.
- Vercel is a performance-focused platform that integrates directly with GitHub to allow things like PR preview deployments and main branch production deployments with 0 project-based configuration.
- Vanilla Extract is a lovely, newer tool for writing CSS styles in TypeScript. It automatically scopes classes (like CSS Modules), is type-safe, and allows the creation of theme-based contracts that make things like dark/light mode support a breeze. It generates all CSS at build time, so there is no run time performance implication.
- IcoMoon lets you hand-pick and download icons, without an account, for free (though they also offer paid sets). Except for the logo, every SVG icon used within this application is taken directly from the “IcoMoon - Free” icon set.