Claude Code rebuilt my COVID podcasting-messenger side project in 9 days
On the 30th of December 2025, I decided to use Claude Code to rebuild Howler, a project I’d manually hard-coded in 2021. It was a voice messaging app that allowed timestamped replies, and from those timestamped replies, you could stitch out something that sounded like a podcast; this could be published to an in-app feed.
That first version was built during COVID. I was overwhelmed with text messaging, emails, and general screen time. I’d also just gotten AirPods and felt a better non-screen-based solution for messaging could and should exist. The podcasting aspect was a natural fallout from timestamped replies.
With limited prior relevant software development experience, I somehow built and maintained that project myself for about a year and a half while keeping my day job. My friends and I used it for about three years, but we eventually stopped sometime in 2024 as versioning the code against different iOS’s got harder.
It also wasn’t the greatest toolkit. It lacked encryption, a smooth user interface, reliable behaviors when you press certain buttons. Worst of all, it was only available on iOS—I couldn’t use it with all my friends. I was also paying Apple for a developer account and not making any money off the app. I didn’t need money but I got a whiff of how exploitative the Apple ecosystem can be for developers.
Back then, I had grand visions that it would become a new messaging app, a new company. I had a startup mindset and wanted to run it in a way that might be venture-backed. I even got close to getting into the AI Grant program; I suspect one reason was that I was an early adopter of Whisper—specifically ggerganov’s whisper.cpp on Xcode.
But in the years that have followed, I’ve broken away from that mold. Something smaller, more intimate, is more desirable.
So this new year’s eve, I started to rebuild it with Claude Code—not specifically to make the app, but to learn what Claude Code could really do. The results are spectacular. What would have taken a solo expert developer three or four months took nine days.
Mechanics
Blogging Workflow
I wrote this blog post using my voice in Howler. I collected my initial thoughts in five messages, connected them, and exported the markdown transcription to Obsidian using Howler’s export buttonIf you don’t have Obsidian, it gives you a share sheet to export wherever you want. Apple Notes works too.. I then passed the transcript to Claude—we’d been talking about the app anyway—and after a few back-and-forths and manual editing, this is the post. All done in about an hour.
If you’re a writer, you might get some mileage from this workflow. If, like me, you use markdown to publish to a static site, you will definitely get more than some mileage.
Messaging and “Podcasting”
You can send two-minute voice messages to friends and reply at specific timestamps. There’s a button to play the whole chain as a conversation, with appropriate jumps between messages. This can then be published to a feed—what I call Howlcasting. The voice messages are called Howlers, a hat tip to Harry Potter. Again, you can export transcripts to Obsidian and improve them; as these are transcribed for each, doin speaker identification/diarisation is trivial.
Philosophy
On Privacy and Transcription
All chats are end-to-end encrypted and use on-device transcription only. The server can’t read your messages; the transcription runs locally in your browser.
But on-device transcription isn’t perfect—especially with accents or background noise. So for personal notes (Notes to Self), I offer an option: you can use OpenAI’s Whisper API for better accuracy. This means your audio leaves your device, which is a privacy tradeoff. It’s your choice. Chats with others stay fully encrypted and on-device; the cloud option only applies to your own notes. I might bring the Whisper API option into chats eventually, if my friends demand it.
This fits the decentralization philosophy. You can go fully private—encryption, local transcription, nothing leaves your device. Or you can trade some privacy for better transcription quality on your personal notes. I don’t make that choice for you.
In the future, there might be more of these opt-in connections—agents, exports, integrations. But the default will always be private and local.
On Money
There’s a balance between decentralization, autonomy, and quality. Striking all three is not easy. There’s also the question of supporting the developer—someone has to maintain this thing. At the moment, that is not a concern; but that may not stay true.
So, with the long term view in mind, I offer two paths for cloud transcription. You can paste in your own OpenAI API key and pay OpenAI directly. Howler gets nothing; you get full autonomy. Or you can use the automated pipeline: I connect you to OpenAI, handle the friction, and take a 10% fee. £10 gets you about 29 hours of transcription—roughly half an hour less than going direct.
This is a test of how money can work in small-scale social software. I haven’t solved creator monetization—how do people who make things on Howler get paid? But the fact that you can export transcripts to Obsidian, turn voice notes into a draft towards a blog or a book—that’s one path. The mechanics get faster. What you do with them is up to you.
The philosophy and the mechanics are playing together here. Decentralization isn’t free, quality costs something, and a builder-blogger (me) needs to eat. But until I can afford to offset costs, you get to choose where your money goes and decide what tradeoffs you’re willing to make.
The Future
The scope of the app is not to make money, though the option exists in Settings. At a certain point, I’ll probably stop allowing new users. If you’re not part of my inner circle, you’ll have to pay, which will automatically prevent growth. I think that’s a good thing.
What this project has been is an exercise in recreating something I built in the past using vibe-coding. To me, this is a harbinger of decentralized social networks being realized fairly quickly—where people can build their own apps and be with their friends on something they control.
I’ve never been convinced that numbers and quantity signal anything about the quality of content. Goodharting is not always bad—when I did Inkhaven, tracking words written per day was useful. But tracking how many people viewed a post, how it was received, whether it went viral—that’s different. People’s intentions change as a function of pursuing external metrics. What you make starts to serve the algorithm instead of serving you or your audience.
Maybe decentralized social networks won’t happen. Maybe people actually want the eyeballs, the likes, the scale. But vibe coding at least makes it possible to opt out—to build something small for people you know, without needing permission or investors or growth targets. That’s the internet I’ve always wanted to be a part of. Let’s see what comes of it.
If you use the app, let me know.
Caveats
This is new software. There’s no abuse reporting mechanism yet, and no formal security review has been done. If you’re security-minded and want to look at the auth flows, reach out. For now it’s open, but it might become invite-only if that feels safer. Feel free to try Howler.
What Went Into Building It
| Scenario | Estimated Time |
|---|---|
| Solo senior full-stack dev | 12-16 weeks |
| Team of 2-3 developers | 6-8 weeks |
| AI-assisted (actual) | 9 days |
| Speedup factor | ~10-12x |
| Metric | Value |
|---|---|
| Lines of code | 46,316 |
| Source files | 210 |
| Development time | 9 days |
| Versions shipped | 10 (v1.0.0 → v1.9.0) |
| Category | Features |
|---|---|
| Encryption | Signal Protocol E2E, multi-device, per-device key bundles |
| Voice | Recording, playback, waveform visualization, 2-min limit |
| Transcription | Client-side Whisper WASM, cloud OpenAI option, BYOK |
| Howlcasts | Audio stitching, transcript merging, comments, play tracking |
| Social | Groups, follows, threaded replies, blog integration |
| Payments | Stripe, transcription credits, gift credits |
| Infrastructure | PWA, push notifications, account deletion |