An AI communication coach that learns your voice.
- Role
- Co-founder
- Years
- 2026 — now
- Live
- voicemirror.io ↗
“So what got you into climbing?”
● Overview
Duolingo-style lessons for how you talk: a skill-tree learning path, AI-scored practice, and free practice with a text coach, a voice coach and AI avatar calls. Native iOS with one backend behind it.
● The hard part
Coaching only works if feedback is fast, safe and personal, and a mobile app can't hold provider keys. Every model, transcription and speech call had to move server-side without making the app feel slower.
- iOS
- native SwiftUI
- 19
- node skill tree
- 0
- provider keys on device
● What I built
- 01
SwiftUI app
An iOS 17+ app with a skill-tree Learn path, XP, levels and streaks, voice practice and avatar calls, plus RevenueCat subscriptions and PostHog analytics.
- 02
One AI gateway
A NestJS API owns auth, content, scoring, caps and the paywall, and is the only thing that talks to OpenAI and ElevenLabs. The app ships zero provider keys.
- 03
Keyless development
A deterministic fake AI provider runs every route with no external keys, and config refuses it outside development, so the whole product can be built and end-to-end tested offline.
- 04
From microservices to one API
The first version was a Go middleman with a safety gate in front of Python text, voice and avatar coach services with RAG memory. I collapsed it into a single backend that's easier to ship and to reason about.
● Stack
- Swift
- SwiftUI
- NestJS
- PostgreSQL
- Go
- Python
- OpenAI
- ElevenLabs
- RevenueCat
- Next.js