Show HN: I built a local-first podcast app

(wherever.audio)

71 points | by aegrumet 1 day ago

14 comments

  • gausswho 14 hours ago
    I am into this idea and liking this so far.

    Found a bug:

    - Search for a podcast creator

    - Click on a result

    - A modal will pop up with a list of episodes

    - Click the title of the episode

    Expected details of that episode. Instead the modal is dismissed and I see the search results again.

    Note that if I click View Details to go to the creator page, a similar list of episodes show up and clicking the title of those opens up a modal with episode information as I would expect.

    Am on Firefox Nightly on GrapheneOS

    • aegrumet 13 hours ago
      Agree, the experience is inconsistent. Nice catch! I'll work on a fix and post back.
  • pajamasam 11 hours ago
    Looks really nice. Well done! I always thought PWAs were only allowed store in the order of megabytes of data, but now I see that the limits (https://developer.mozilla.org/en-US/docs/Web/API/Storage_API...) for IndexDB are quite generous.
  • kornork 1 day ago
    I'm sure your idea's great, but I was hoping for a regionally local-first podcast app when I clicked the link, e.g. something that would show me podcasts from near where I live.
  • miloignis 1 day ago
    Very cool - played around with it, and it seems quite featured, and my test podcast worked!

    I really appreciate the local-first, self-contained but very portable architecture, with an optional server connection to handle CORS and index and whatnot; that's a really solid approach.

    Hopefully this isn't too annoying, but I saw you open-sourced what looks like the backend, do you have any plans/interest to open-source the front end as well, for people who might want to self-host?

    • aegrumet 1 day ago
      Yay! And not at all annoying. No plans to open-source the frontend at this stage but I'll keep the request in mind. Btw, that backend was part of an earlier abandoned infrastructure attempt. Still cool code imo, but no longer running on it.
  • The_SamminAter 13 hours ago
    I noticed that this doesn’t work on iOS 14 due to new/unsupported JS (just shows a blank page), would this be possible to workaround/fix? I quite like the idea, and would love to switch to it as my way to consume podcasts.
    • aegrumet 13 hours ago
      Ah, bummer. Just did some quick research, which suggested that first load can fail on iOS 14, but that refreshing the page might fix the issue. Can you try and report back?

      I don't see iOS 14 in the list of simulators that ships with XCode, so this could be a challenge to reproduce.

      Another option: try another browser. So if you're using Safari, try e.g. Chrome or Firefox.

      • The_SamminAter 13 hours ago
        Thanks for taking the time to respond! I’ve tried refreshing a couple of times and I’m afraid it made no difference. Chrome and Firefox all use the same embedded WebKit, so I’m afraid it still happens on them. I have XCode with an iOS 14 (as well as some similarly-old) Simulators if you’d like me to see if I can isolate and upload that, but according to Apple documentation[0] you should be able to download older simulators from Settings->Components->Add Platforms.

        [0]: https://developer.apple.com/documentation/xcode/downloading-...

        • aegrumet 2 hours ago
          They let me download it, but alas

          > The iOS 15.0 simulator runtime is not supported on macOS 15.6.1.

        • aegrumet 2 hours ago
          My XCode only goes back to iOS 15 :(

          Downloading it now, will see what happens.

  • Grangar 14 hours ago
    This is incredible. Podcasts are what kept me on Spotify and now I can finally switch!
  • kethinov 1 day ago
    Any plans to make an Electron or Tauri version?

    Also personally I do not prefer to play podcasts with a podcast app. I just want it to download the files to a directory which I then sync with another audio player. Does your app make that workflow easy?

    • catapultnovice 1 day ago
      I made something for pretty much this use case[0] - it probably has _quirks_ because I'm the only user I know of, but it is free :)

      [0] https://github.com/Slord6/podcast-playlist

    • aegrumet 1 day ago
      Not at the moment but I've been meaning to dig into stuff like this.

      Fun sidenote, what you're describing is how the first podcast apps worked back in the day!

  • suprnurd 1 day ago
    Cool idea! I was playing with the app and I was curious why do some of the podcasts say "requires proxy" in red? Thanks!
  • jcul 1 day ago
    This is actually pretty amazing, definitely the most impressive pwa I've ever seen.

    It took me about 3 minutes to add to my home screen, export a opml from pocket casts and import it to whatever.

    Having offline downloads, ability to adjust playback speed etc is really cool too.

    Nice work!

    I'm on my phone now, so I'm curious to see how it looks on a browser. Obviously syncing of podcasts / listening positions is not going to work, by design?

    The AI search is actually kind of cool for discovering podcasts too, I kind of rolled my eyes a bit when I read it, but it actually worked ok for a query I tried, and I do find it difficult to find new podcasts.

    • aegrumet 1 day ago
      Nice, thanks!

      > Obviously syncing of podcasts / listening positions is not going to work, by design?

      Not sure, can you say more? Quick potential answers in the meantime.

      For syncing, there's an auto-sync that runs in the background and prioritizes the shows that you've listened to most in the past month, but eventually cycles through all podcasts that you follow. There's also a manual sync on the Following page.

      For listening positions, there's a Queue where you can drag individual episodes up and down to change the order, and playback will automatically cycle to the next episode in the queue when the playing episode finishes.

    • aegrumet 1 day ago
      Ah, just realized you might be talking about syncing state between devices. Definitely haven't tackled that, as there's no coordinating server in the architecture at this point. But I did recently add "beaming", which lets you quickly transfer your subscription lists between devices with a QR code backed by an ephemeral, signed link.
    • aegrumet 1 day ago
      When open in the browser, try some vi navigation keys :-)
  • sdotdev 1 day ago
    love how frictionless the site is, really good ux other devs should take note
  • hoistbypetard 1 day ago
    I haven't tried it yet, but that's a great choice of name! Well done.
  • phildini 1 day ago
    This is super cool and I love the idea of keeping the data and AI local.
    • aegrumet 1 day ago
      Thanks! Also, to be transparent, the chatbot uses a third party hosted API. Just updated the post to reflect that. There are actually models that can run in a browser, but last time I checked they were pretty heavy to run.
  • wedrawmonsters 1 day ago
    First website in months that hasn't made me immediately angry with cookie popups and email list signup nonsense. I love it.
  • khana 1 day ago
    [dead]