Show HN: I Made an iOS Podcast Player with Racket
87 comments
·January 27, 2025freeplay
I don't know if this is a good place for feature requests, but the only thing keeping me from switching to this at at the moment is download settings per podcast.
For example, some podcasts I don't want to miss an episode and I want them all downloaded. Other podcasts I only check in on occasionally and would only want the latest episode to be kept on device.
I subscribe to a lot of podcast and downloading and keeping every episode is going to eat up a lot of storage.
Besides that, love the simplicity of it. Well done!
pvg
I don't know if this is a good place for feature requests
If you've checked out the thing being showhn enough to have a feature request, you're doing Show HN right.
Bogdanp
Thanks! That makes a lot of sense. It actually only downloads at most 2 episodes per podcast at a time, but that's still not great for your use case. I do plan to add per-podcast settings in probably the release after next, so stay tuned for that!
petercooper
I have the same requirements but started to think these use cases might be different enough to warrant different apps. So I’ve gradually shifted to those “don’t miss” ones in a dedicated podcast app and the occasional ones to Spotify. Could probably do with another app for the tiny daily ones too..
mplewis
You don't need two apps – Overcast does all of this.
newsclues
I've considered the multiple apps to manage content consumption but it's such an inelegant solution I've been unwilling to try it.
I want to be able to categorize content. I want a category of podcast to work to, work out to, go to sleep to, or to simply sit a learn. I want different categories of music. I want to be able to set a group of content on YouTube that I will watch everything on, and one that I can sort through and pick the few videos I want to watch.
Given the value of that data in just my sorting and prioritizing of content, I don't know why I don't have the tools so that data can be harvested and sold.
I think it will lead to better content.
carlosjobim
[flagged]
apitman
I don't see anything being demanded. I have several open source projects used by other people. I don't implement every requested feature, but requests are a great way to get ideas I might never have had on my own.
If a developer wants money for every feature, they're free to use a commercial license and accept the tradeoffs.
carlosjobim
Demand or request – what gives somebody the right to make a request without offering anything in return? Most people here wouldn't walk around in the street asking strangers for a handout, or ask for free stuff in shops and restaurants. So why is it okay to make these requests without offering even token compensation?
I have made feature requests from open source project, and always with a monetary offer attached. If everybody who wants a feature pitches in a little, then the creator will be compensated fairly if he chooses to implement that feature.
bowsamic
It was a suggestion, not a demand or request
KristijanM13
I support a number of podcast creators on Patreon, and apparently they’ll (at some stage) allow creators to have multiple RSS feeds. Until then, I’d love to be able to regex match on titles for download. This one creator I follow has about 6-7 different shows on the same feed, but I only listen to 2 of them.
I’ve been a Pocket Casts users since I can remember. I’ll +1 the CarPlay support that you mention was already on your list. The other, which they’ve recently introduced, is to disable Lock Screen scrubbing. Been a life saver!
Looks great though! I’ll keep an eye on the change long as it evolves.
hbn
> The other, which they’ve recently introduced, is to disable Lock Screen scrubbing
I was so happy I happened to read through their recent changelog and caught that. WAY too many times I accidentally swiped along the scrub bar and put myself at a random place in a 4 hour podcast episode and had to spend 5 minutes trying to figure out where I was.
Graziano_M
Wow! I have searched for the feature in the settings so many times after losing my spot in a long podcast. Thank you for pointing that out!
tao_oat
I have the same problem with Patreon feeds -- I use [siftrss][1] to manage this for now. Though it's slightly hacky, it works!
[1]: https://siftrss.com/
oidar
For those of unfamiliar with Racket, could you go over what it takes to run a Racket app on iOS?
Bogdanp
Sure! I have a whole library dedicated to integrating Racket and Swift and you can find some of the nitty-gritty details there[1]. The gist of it is:
1. You build Racket for iOS in an interpreted mode (regular Racket works a bit like a JIT in that it needs to load code into memory at runtime, which is a no-go on iOS)
2. You link to it as a regular static library.
3. You call Racket's C API[2] to load and run Racket code.
Here's[3] a somewhat outdated video I did a while back on using that library for Mac app development. Many of the things in this video are now much simpler/more straightforward, but maybe it serves to give you an idea. I also have some source-available Mac apps built this way that you can take a look at[4, 5].
[1]: https://github.com/Bogdanp/Noise?tab=readme-ov-file#usage
[2]: https://docs.racket-lang.org/inside/cs.html
[3]: https://www.youtube.com/watch?v=aTvU0j4hBR0
the-chitmonger
I'd love to know as well - I found some documentation on the Racket site, but I'm not entirely sure what I'm looking at here.
https://docs.racket-lang.org/inside/ios-cross-compilation.ht...
hoofedear
Just want to say, I love the design of your website!
Bogdanp
Thanks! It's built with Chakra UI[1] so I can't take full credit for it.
EDIT: Oh, I just realized you might be referring to my blog, in which case I _can_ take credit for that :P. Thanks again!
fandorin
yeah, really good looking page, congrats! btw - out of curiosity - what tool did you use to create app screenshots for AppStore?
Bogdanp
Thanks! I used Pixelmator Pro to put the images together. I just made one long image that I cropped at the end into the screenshots you see on the App Store. For the iPhone templates, I think I exported a template from Sketch, but I later found out that Pixelmator also has them (you can find them under the Mockups category in the New dialog).
anonzzzies
Well done; will test and possibly switch. But, for me more importantly, using Racket for this is more really nice. Thanks for that.
philsnow
I’m getting an error going to the Discover tab and also when hitting “search” after typing a search term (newlines added):
string::1: bytes->jsexpr:
bad input starting #"error code: 502" context..:
.../syntax/readerr.rkt:15:2: -raise- read-error
.../private/arrow-val-first.rkt:486:18
.../private/backend.rkt:45:9: get-trending-podcasts
.../noise-serde-lib/backend.rkt:69:22
Bogdanp
A botched deploy that I didn't notice ended up crashing the server, which then failed to recover when the systemd unit tried to restart it (it couldn't bind the port and ran out of retries quickly) overnight, so that's why that was failing. It's back up now and I'll put a fix in today.
philsnow
Went looking for the source, but when following a link to podcatcher.net, Cloudflare is saying the podcatcher.net backend is “502 Bad Gateway”ing.
edit: oh right,
> I am still debating whether or not I want to make the app itself source available, like I've done for Franz and Remember. Maybe if there's interest.
sghiassy
Racket has been on my bucket list of languages to learn. Seems really intriguing
baggachipz
This is great! I just switched over from Overcast. Very nice and simple interface, no clutter, and not a ton of unnecessary features. Love it.
astound473
Any plans to implement podcast 2.0 features like boosts or sat streaming?
teekert
I streams sats to creators but also to the podcast app. I wonder what an app like Castamatic or Podverse or Fountain makes…
cheaprentalyeti
Sats?
astound473
satoshis, derivative of bitcoin I think? I have a poor understanding of it. Essentially it's a way to pay podcast producers directly. Streaming means it sends whatever you set per minute so you auto-support podcasts. Boosts are short messages with dollar values tied to it. The show has to support this though, not all podcasts do.
adlpz
Looks cool! If I may, a couple of feature suggestions:
1. You mentioned it already but bookmarks. In particular bookmarks that can be added through iOS Shortcuts (so we can each build whatever crazy automation we need) and that can be exported (so we can keep LARPing productivity in our Obsidian vaults).
2. An "undo" function, somehow. I know this is weird but I've misclicked the seek bar so many times (esp. in the lock screen) and lost where I was... a solution for that would be so cool.
I've been using the same podcasts app for... well over 10 years. But yours looks really cool, I may just switch.
Bogdanp
Noted! There is already an undo function, though. If you seek, an undo button pops up. Also, if you go to settings, there's a "History" view where you can also undo from.
wuliwong
I will definitely check it out. I've never done iOS development but I have been considering doing this very thing as a way to learn and to give myself the podcast player I really want. :) Good luck!
"Boost voices" is a cool feature a lot of apps have, but what is really needed is a "compress voices" feature. So many podcasters speak loudly 75% of the time, but then trail off randomly or almost whisper. Then you turn it up and they're projecting loudly again and blow your ears out. It's especially annoying in the car trying to compete with road noise.