
ROLE IN PROJECT:
Vibe Coder
PROJECT YEAR:
2026
DURATION:
1 Month
WORK DONE:
I shipped an iOS app without opening Figma once
I love podcasts. None of the apps I tried felt like they did.
I designed and built Waves end-to-end, then shipped it to the App Store. A podcast player for people who actually listen: clean dark interface, offline downloads, chapter markers, and a Walking Mode that tracks your route while you listen. No account, no ads, no tracking. This is the story of taking one product from a Figma file to a live iOS app entirely on my own.
Problem
Most podcast apps feel like they were built for someone else, power users with hundreds of shows, taxonomy in their head, and a tolerance for cluttered home screens. I'm not that listener. I follow a handful of shows, open the app to see what's new, and want to be told what to play next when I don't know. None of the apps I tried respected that. So I decided to build my own. The harder problem wasn't the app, it was shipping a real iOS product without the two things designers usually start with: Figma, and a developer.
The Bet
Why build another podcast app: Most players optimise for the platform, not the listener. They push accounts, ads, and recommendation engines that harvest data. I wanted the opposite: a player that stays out of the way, respects privacy, and does the few things a real listener needs exceptionally well.
Stream any show via public RSS, no walled garden.
No account required; listening history lives on-device only.
One clear job: play the thing, remember where you were, get out of the way.
Scope of the work: Every layer was mine. Product definition, interaction design, visual system, and the iOS build, no handoff, no team. The design-engineering loop was the point: decisions could go from sketch to running code in the same afternoon.
Designing in code, not for code
I didn't open Figma once. I designed Waves directly in SwiftUI, with Claude Code as the pair that wrote the code I described. The shift was bigger than the toolchain: I stopped mocking screens and started shipping them. The iteration loop collapsed from design → handoff → wait into design → see it move → adjust. It changed what I considered finished, and it pulled motion, performance, and edge cases into the design conversation from day one.

User Understanding
The follower: three to ten shows they care about, opens the app for what's new, not what exists.
The drifter: has no plan, wants something good surfaced without committing to a query or a genre.
Design Principles
Stay out of the way: A dark interface that recedes. Playback is the centre of gravity. Controls surface when needed and disappear when they aren't, from the home screen down to the lock screen and Dynamic Island.
Reward real listening: Depth over dopamine. Chapter markers, bookmarks with notes, sleep timers, and 0.8x–3x speed exist for people who spend hours in long episodes — not for engagement metrics.
Privacy as a feature, not a footnote: Nothing leaves the device. No ads, no tracking, no account requirement. Sign in with Apple is optional and never a gate. Apple's own privacy label confirms: no data collected.

Key Design Principles
Personalisation over taxonomy
Native over novel
Motion as feedback, not decoration
Core Features
Walking Mode: Listen and move, tracked in one view. Start a walk and Waves draws your route on a live map, counts steps and distance from the phone's sensors, and saves the workout to Apple Health when you finish. The map tilts as you tilt the phone.
Simple idea, genuinely useful, a podcast app that doubles as a walk companion.
Full Apple Health integration on completion.

Mood-based discovery: Home adapts to context. Top charts, category picks, and mood filters for Commute, Focus, and Walking. Tap a new release and land straight on that episode, no hunting.
Deep playback controls: Everything a heavy listener reaches for. Offline downloads, chapter navigation, bookmarks with notes, sleep timer, variable speed, queue management, Live Activity, and lock-screen controls.
Personal touches: Small delights that make it feel yours. Alternate app icons, a profile page that reflects your listening, and an in-app feature-request flow so the roadmap follows real use.
Shipping Cadence
Four releases in six weeks. The tight design-engineering loop meant feedback turned into shipped features fast: new-episode alerts, in-app legal docs, richer home screen, and the map-tilt interaction all landed post-launch.

Reflection
Waves taught me that the line between designer and developer is mostly tooling. With AI handling the code, the work that was left was the work I already cared about, hierarchy, motion, what the user is actually trying to do. Shipping something real also exposed how much craft only shows up under real conditions: at 60fps, on a slow network, mid-swipe. That's not a question Figma ever asked of me, and it's the one I learned the most from.