I got frustrated with my podcast app on a Monday afternoon, and by the end of the week I was thirty-six builds into my own iOS app. That’s the short version of episode 164.
The longer version starts with a Claude conversation. I told it I wanted a cross-platform, accessible podcast app that worked well with VoiceOver, supported the actions rotor with a customizable order, and synced between devices eventually but not in version one. Then I had it write a PRD with me, one question at a time, until we both understood what I was actually building. From there it was phased work, one milestone at a time.
Once it was usable, I invited a few testers. That’s where it got interesting. I can build something that works for me, but the second a sighted user or another VoiceOver user touches it, things show up. Search was broken. The follow button didn’t change to an unfollow button after you tapped it. Player controls were missing above the tab bar in two of the four tabs. Inbox didn’t play. All things I would not have found on my own, or would have found much later.
Then come the feature requests, which is where Damashe’s advice about GitHub labels and milestones starts to matter. If you say yes to every good idea the moment you hear it, you never finish phase one. So features like folders for organizing podcasts, OPML import and export for sharing subsets of your subscriptions with a friend, those get written down and slotted into a later milestone instead of derailing what I’m working on right now.
We spend some time on App Store Connect, which is rough. Safari with VoiceOver does not work well there, and at one point I had to switch to Chrome just to invite a tester to a TestFlight group. Damashe has had this experience for years. It is not new. But there’s a new wave of people getting their first Apple developer account because they vibe-coded an app, and they’re hitting the same walls. I’m hoping WWDC says something about it this year.
The other thread of the episode is about AI usage for people who aren’t building things. You don’t have to be a developer to get value out of these tools. If you’re signing a commercial lease and you’ve never seen one before, you can feed it to Claude or ChatGPT and ask what clauses might disadvantage you. If you want to understand a piece of the tax code, you can do the same. The trick is to verify. Take the answer to a different tool, ask the same question, and see if you get the same shape of response. That’s a real way to use this technology, and it’s not the one most AI shows are talking about.
We also cover Lyft vs Uber pricing this trip, which favored Lyft by a real margin, the Lyft feature that ties your pickup to your flight arrival time so you don’t have to babysit your departure schedule from the air, and a great experience I had at the Hyatt in downtown San Francisco with a front desk agent named Vijesh who remembered my name and helped me every time I came through the lobby. Things like that make a trip.
Tip Jar subscribers, check your email this week. There’s something coming for you.
Episode 164 is up tomorrow morning wherever you get your podcasts, or at technicallyworking.show.
Michael