I spend a lot of time listening to podcasts; honestly, if I had to name a single most important app on my phone, I’d probably pick the podcast app I use? Which, for most of a decade, has been Castro. Originally I started using it because I really liked their visual design; and then they added a queue-focused design that did a very good job of managing how I decide what podcasts to listen to.

Basically: I subscribe to a bunch of podcasts. Some of them I want to listen to every episode ASAP; some of them I want to listen to eventually but don’t care about when; some I want to make a decision on each new episode whether or not I want to listen to it; and occasionally I’ll run into an episode of a podcast that I’m not subscribed to that I want to listen to. And Castro had a flow that handled all of those well, sending new episodes to a podcast and letting me decide whether I wanted to put them on a queue. (Or, for podcasts in the first two classes, I can bypass the inbox entirely.) And then I tell it to just play whatever’s next in the queue; and if I change my mind, I can fiddle with the queue easily, the UI for that is good too and pleasant to look at.

And Castro did other things well, too. My favorite little detail was the way they added extra functionality to the tab switching buttons at the bottom. If you’re not on the search tab and you tap the search button, then you get switched to the search tab. But if you’re already on the search tab, then it acts as a back button, bringing you back from a single episode of a podcast that you’ve been searching for to the list of all episodes for that podcast to the list of all search results to the search bar, even clearing out your prior search term for you. It sounds like a small thing but it was a really natural flow, enough so to make me actively happy every time I tapped that button, and then other apps started feel broken when they didn’t do the same thing. (I’ve started seeing it in other apps, but it’s still not a universal idiom, and most other apps don’t implement it as well.)

 

Unfortunately, Castro started stagnating a couple of years ago. It was a two-person app; eventually they sold to a company, and then they (at least one of the developers, maybe both, I can’t remember) left that company to go elsewhere. So the rate of changes slowed down; I was actually fine with that, the functionality was good, but what I didn’t like is the way bugs stayed around. There’s one bug in particular that I would see multiple times every day; it was just a fit-and-finish bug, but still, it’s the sort of thing that makes me wonder if anybody working at the company actually uses Castro and, if they do, if they actually care about fit and finish.

That was getting me annoyed, but what was actively bad was that I ran into situations where Castro stopped reliably updating podcasts. Something somewhere would remind me of a podcast, I’d think “hmm, I haven’t seen a new episode of that podcast for a while”, and then I’d go to that podcast in Castro, pull on the list of episodes, and five episodes would appear all of a sudden. To their credit, it’s great that pull-to-refresh causes a signal to be sent to their backend infrastructure to give it a kick; but still, my podcast player’s number one job is to let me listen to episodes of podcasts, and if it can’t do that reliably, that’s a regular problem.

(Side note: basically all podcast players have now switched to this sort of architecture, where crawling is done server side instead of client side. And I wish they hadn’t: it means that they’re now structurally vulnerable to problems with the server infrastructure or having their servers blacklisted, whereas if it’s done from my phone, all that it depends on is whether my phone can do HTTP requests. The latency is good for popular podcasts, but much worse for unpopular podcasts; and in the client-side world, I could just tell it to refresh all the feeds right before leaving the house or the office and that would be good enough? So personally I wish that podcast clients hadn’t made that switch; or, at the least, that they’d stuck with client-side fetching for private podcasts.)

Also, over the last couple of years I’d run into some use cases where the single queue wasn’t working so well. There were some podcasts that I only wanted to listen to during acupuncture (because I always fall asleep during acupuncture, so I wanted podcasts that I would enjoy but wouldn’t mind if I miss significant chunks of episodes); and there are a couple of podcasts that I’m listening to that do a chapter-by-chapter breakdown of The Book of the New Sun that I listen to episodes of as I finish chapters of the book. So, in both cases, I want to have a few episodes stashed somewhere, but I don’t want to have them in the regular queue. And Castro didn’t have great affordances for that.

 

Anyways, one of those times when I discovered Castro hadn’t refreshed a podcast was the straw that broke the camel’s back; so I decided to look into other podcast clients. The ones I’d heard the most about were Pocket Casts and Overcast; I figured I should give Apple Podcasts a try too, I remembered reading some articles about a major revamp that it had gone through a year or two ago.

Apple Podcasts turned out to be easy to rule out: when I did some searching to jog my memory about the changes, I ran into a bunch of articles saying that its server side podcast feed fetching infrastructure was super unreliable. Which is exactly what I didn’t want; maybe it’s gotten better since those articles were written, but I just do not want to spend time worrying about that, especially since I wasn’t hearing any active reason why Apple Podcasts was better than Pocket Casts or Overcast.

But Pocket Casts and Overcast both seemed entirely plausible. So I installed both of them and ported over my podcast subscriptions; that way I could get the feel for the new episode triage flow for both of them, and I’d be able to see if one of them was noticeably slower at getting new episodes or was dropping them entirely. And I spent a few weeks actually listening to podcasts on one of them (instead of just triaging episodes), and then a few weeks listening on the other one.

 

Pocket Casts seemed pretty solid. It was less queue focused than Castro, but ultimately there’s an Up Next queue which works fine. And its triage mechanisms are good: you can mark podcasts to automatically go into the queue, or there’s a New Releases filter that shows the most recent episodes across all podcasts, making it easy to see new episodes and to click into them to read descriptions. And you can even do triage just from the New Releases filter without clicking into episodes, because swiping right on the episode pulls up options to enqueue it and swiping left pulls up options to archive it. (Pro tip: in the settings there’s an option to control whether “queue first” or “queue last” takes one fewer press.) And you can even do triage straight from notifications, without going into the app at all: long pressing on the notification gives you options for queueing first, queueing last, and archiving.

So triaging is pretty easy. Having said that, Pocket Casts doesn’t have you always staring at your Up Next queue the same way Castro does. Which, at first, kind of bothered me, and there’s one aspect of the way the Up Next UI works that I think is not great. But, ultimately, I decided that that difference in approach that would be fine difference once my habits adjusted: Pocket Casts is more interested in filters than in queues, and filters work too.

In particular, the filters handled the Acupuncture and New Sun cases just fine. (Once I realized that I could star the next New Sun podcast episodes to listen to and configure a filter to pay attention to that.) And actually I could even use filters to act like different parts of my Castro queue – the New Releases filter lets me look at recent stuff, and I created another filter that showed all unarchived episodes from within the last month, with oldest first; that basically matches my queue, aside from the top-priority-listen-to-immediately podcasts. Once I did that, I moved away from putting everything in my Up Next queue; so now it has 5–10 episodes instead of 20–40, which honestly feels healthier. (It won’t work if I start to get a month behind in my podcast listening, but if that happens, I’ve got bigger problems!)

So: not perfect, but quite good. Probably the biggest flaw is that Pocket Casts seemed to be draining my battery a decent amount; aside from that, it’s a little hard to edit filters after creating them (it’s possible, they just split the UI in a weird way), there’s one thing about the Up Next interface I don’t like (clicking on an episode plays it immediately), I wish filters were a little more configurable, and if you add a new private podcast feed then it takes an hour or so for Pocket Casts to be able to deal with it, and the UX isn’t great during that hour. But that’s all totally manageable. And the new episode detection was rock solid, which is important. There were also some little things I liked: e.g. various parts of the chrome change color based on the podcast art, which is a nice little touch, especially in the watch app.

So, all in all, Pocket Casts felt like a noticeable upgrade over Castro. It did better on the bottom of the hierarchy of podcast needs, and arguably a little better on stuff higher up as well.

 

Overcast seemed good, too. It has multiple queues, and handles them better than any other app: it’s the only one that properly handles the “podcasts for acupuncture” case properly where it lets me go through a different set of episodes without making me touch my main queue at all.

I was pretty disturbed when I ran into a couple of instances of podcasts where new episodes were showing up in Pocket Casts but not Overcast: is this going to be a repeat of what I’d seen with Castro? But I emailed the developer and he had good answers to both of those: one was a Substack podcast, they were blocking his crawler, he was already aware of that and was talking to them about it, and it got fixed a couple of days later. And the other was a situation where I was using an old version of a feed; I’m not sure why it worked okay in other clients, but at any rate once I used https instead of http, it worked fine. And also Overcast lets you pull-to-refresh locally (well, mostly locally), so it has a short term workaround for feeds that you know to be broken, which I appreciated.

So I ended up actually being decently confident in Overcast’s feed crawling abilities. (And yay for developers responding quickly.) But, after using the app for a few weeks, I kept on being slightly annoyed by friction in the way Overcast handles triaging new episodes. The list of recent episodes in the app only shows you the podcasts, not the actual episodes, so just by glancing at it I wasn’t always sure if I’d triaged a given episode; and going from the podcast name to the episode notes took me more clicks (or long presses or something, I can’t remember) than I’d like. Also, as far as I can tell there’s no way to mark a podcast to always be added next to the queue, so triaging was more exposed in Overcast than I would have liked. It wasn’t unmanageable or anything: I ended up with a flow where I triaged by going from notifications to episode notes to adding it to the queue, and that was okay. But it was clearly a step down from triaging in either Castro or Pocket Casts; and, ultimately, I decided that it was more important to me than Pocket Casts’s battery usage.

 

So I’ve been exclusively using Pocket Casts for a month or two now, and I’m still happy with that decision. Having said that, both of those apps are good, I can easily imagine other people preferring Overcast. And, honestly, Castro is good too: feeds only get stuck maybe a couple of times a year, the other bugs that were slightly annoying me were really just cosmetic, I think Castro handles podcast chapters better than the other two apps, I like the way it lets you download the audio from Youtube videos so you can treat them as podcasts, and if you do all your podcast listening off of a single queue, then Castro handles the single queue case better than those other apps. I still think it was time for me to move away from Castro and I’m worried that it’s probably not getting actively maintained any more, but there’s also a reason why I used it very happily for so many years.

Post Revisions: