Inspiration
Simon's audience are systems-builders and productivity-obsessed professionals who already invest in themselves. Many have thought about coaching but never accessed it because the cost is high, the process is slow, and most AI are just chatbots. I wanted to build something that makes coaching feel the way it should: voice-first, deeply personal, and something that compounds over time.
What it does
Council is a voice-first AI coaching app where the very first conversation already feels like the fifth:
- Personal context first: Before you choose a coach, you tell the app who you are — your values, what you're building, what you're stuck on. Every coach reads this before they say a word.
- Real-time voice coaching: Full-duplex voice via ElevenLabs. The coach can interject, you can interrupt. A responsive orb animates across seven frequency bands with haptic feedback.
- Continuity that compounds: Every session is transcribed and stored. Coaches carry context across conversations, identifying patterns, recurring hesitations, and progress over time.
- Multiple perspectives: Bring up to three coaches into a single live session — each with their own voice, personality, and methodology.
- Coaches that see your work: Connect Notion via OAuth and your coach can search pages, read content, and reference real projects — built on the Model Context Protocol.
- Build and share: Create custom coaches in under a minute (name, system prompt, voice, AI model, colors) and share with a single deep link.
- Live Activities: Sessions persist in Dynamic Island and on the lock screen.
- Monetization: Monthly and yearly subscriptions powered by RevenueCat, with seven contextual paywall triggers that convert at the moment of highest intent.
How we built it
Native iOS app in SwiftUI (42 files, MVVM). Backend on Firebase — Auth (Apple Sign In), Firestore (persistence), and 11 Cloud Functions in TypeScript for agent lifecycle, multi-voice sessions, MCP server registration, and Notion OAuth. ElevenLabs Conversational AI SDK for real-time voice. RevenueCat Purchases SDK (v5.0+) for all subscription management and entitlement checks through the App Store. MCP proxy on Cloud Run (Node.js) for Notion workspace tools. ActivityKit for Live Activities. All API keys server-side — nothing sensitive on device.
Challenges we ran into
Making per-user agent cloning feel instant. Each user gets a dedicated ElevenLabs agent cloned from the coach template on their first session — carrying their personal context and history. We solved this with lazy cloning (created on first session start, not sign-up) so onboarding stays fast while still giving each user a truly personal agent.
What we learned
The gap between a chatbot and a coach is all about architecture, interface design, and a hundred small decisions about what a conversation should feel like. Personal context injected before the first word, voice as the primary interface, and continuity across sessions transforms AI from a tool into something that genuinely coaches.
What's next
More MCP integrations, in-app task management from coaching sessions, AI-generated session summaries, and eventually team coaching for co-founders and small teams.
Log in or sign up for Devpost to join the conversation.