Building kofipod with Claude Design and Opus 4.7
kofipod started as pure curiosity. Anthropic dropped two things within a few days of each other — Claude Design and Opus 4.7 — and I wanted to kick the tires on both. An Android podcast player turned out to be a good shape for that test: UI-heavy enough to exercise Claude Design, complex enough behind the scenes to give Opus 4.7 real work to do.
Claude Design vs Google Stitch
I’ve used Google Stitch a few times for designing web apps and mobile UIs. It’s fine, but getting it to do what I want has always been a wrestling match. Claude Design is in a different league on steerability.

The biggest thing for me is consistency across iterations. I forgot to ask for a few screens in the initial design pass — playing now, among others — and when I came back to add them, Claude Design slotted them in with a UI language that matched the rest of the app, and understood where they belonged in the flow. It knew “now playing” comes after the library/episode screens. I also asked for a splash screen without telling it where that screen belonged, and it sensibly placed it in front of everything else.
Stitch, in my experience, would just drop screens wherever and the visual language would drift between generations. Different game.
I’d been debating whether to keep my Google Pro sub around just for Stitch access. After this, there’s no reason to. It makes me wonder if Gemini’s broader instruction-following weaknesses bleed into the adjacent AI products — Stitch has always felt a bit like that.
For the record: I asked for purple and orange as the primary colors. Yes, that happens to land near the “AI slop” palette, but it was a deliberate pick on my end. I’m confident Claude Design will follow whatever palette you give it.
Opus 4.7 doing the actual work
I let Claude Code run on this mostly in auto mode. Rough accounting:
- A few hours of actual human time
- About 2.5 sessions of the 5-hour Claude Code window, mostly autonomous
- ~0.5 session of Claude Design, counted separately
Where Opus 4.7 really showed up was in instruction-following. The “didn’t implement the now playing screen because I hadn’t given it that design yet” moment is the one that stuck with me. It didn’t hallucinate a screen and hand me something half-made — it just left the gap and let me come back to fill it in. That’s the behavior I want from a model working on a multi-hour task.
On capability specifically: I can’t honestly tell you Opus 4.7 is a step up from 4.6. I didn’t A/B test with identical prompts and I don’t have evals for this kind of work. Vibes were similar. 4.7 is capable — very capable — but from one session of real use, I can’t claim a material difference over 4.6.
The one weird thing
At one point I tried to make changes to the podcast player logic and Anthropic’s API kept returning 400 errors with refusals about piracy and licensing concerns. For a feature that is, to be absolutely clear, just downloading RSS-advertised MP3s from publishers who actively want you to download them. Podcasts.
The funny part: Opus worked around it on its own. It started editing in smaller chunks, framing changes in a way that didn’t trip the filter, and got the job done. Classifier dodge by a model trying to help me with a perfectly legitimate task. Ridiculous on the safety side, impressive on the model side.
What the app actually does
Despite being a weekend-ish project:
- Search for podcasts and build your own library
- Download episodes, including smart downloads for subscribed shows
- Background playback
- Multiple playback speeds
- Kotlin Multiplatform under the hood (though I didn’t build the iOS side)
I’d originally planned Google Drive backup with Google sign-in for auth, but cut both — Play Store’s auto backup covers the backup case well enough that the extra surface area wasn’t worth it. The release script is also in: version and build number bumps, git tags, signing with the release cert. And the whole thing is now open source at github.com/kofikodr/kofipod.
The bar has moved
I’ll probably keep kofipod maintained as long as I’m using it myself, and I’m happy to put it out there as another Android podcast player option. But the bigger takeaway is about what “simple software project” now means.
Source code for this class of app is approaching worthless. A few hours of directed work with good models gets you something that’s genuinely usable. That cuts both ways — the floor on what’s possible for a solo dev has shot up, and so has the floor on what people will accept as “a real app.”
Co-written with Claude.