Inspiration
The conversations that most affect a career—a presentation, interview, difficult conversation, pitch, or important meeting—are also the hardest to practise realistically. Notes and generic speaking tips do not recreate pressure, and friends rarely push back like a skeptical executive, interviewer, or upset colleague.
SpeakGym began as ManagerGym, focused on difficult conversations for new managers. We expanded the same practice loop to presentations, interviews, meetings, networking, persuasion, storytelling, and custom speaking scenarios while keeping difficult workplace conversations as a core use case.
What it does
SpeakGym turns speaking practice into a repeatable workout:
- Choose one of eight real-world speaking scenarios.
- Describe the goal and audience.
- Set audience difficulty from Supportive to Hostile.
- Respond by microphone or keyboard.
- Receive simulated audience questions and pushback.
- Finish with a five-part debrief covering clarity, confidence, structure, audience awareness, and persuasiveness.
- Open Coach Me for a focused coaching adjustment and improved example response.
- Repeat the same scenario at a harder level through Stress Test.
- Track sessions and skill progress locally.
How we built it
SpeakGym is a native SwiftUI iPhone app. SwiftData stores scenarios, sessions, transcripts, scores, and progress. Apple Speech supports microphone transcription, while AVSpeechSynthesizer gives the simulated audience a voice.
The conversation layer uses an AIConversationProviding abstraction with two implementations:
- A deterministic local provider for a reliable, credential-free demo.
- A server-backed client and documented API contract for future production AI.
The subscription layer follows the same pattern. StoreKit 2 provides a safe fallback, while a RevenueCat adapter loads offerings, checks the pro entitlement, purchases packages, and restores purchases when a valid RevenueCat public SDK key is configured.
RevenueCat and monetization
SpeakGym uses a freemium subscription design. SpeakGym Pro is designed to unlock unlimited role-plays, all audience levels, personalized coaching, advanced Stress Tests, and deeper progress insights.
The project includes RevenueCat Purchases 5.92.0, monthly and annual StoreKit product identifiers, local seven-day trial metadata, and code for offerings, entitlement checks, purchases, and restores. Production RevenueCat credentials and a RevenueCat-mediated purchase have not yet been verified, so we are not claiming a completed production integration.
Challenges
The central challenge was balancing realism with demo reliability. A live model introduces privacy, latency, server, and credential dependencies. By separating the conversation interface from its provider, SpeakGym can demonstrate the complete workflow locally while keeping a safe boundary for production AI.
The second challenge was keeping monetization testable before store configuration. A shared subscription interface supports both StoreKit 2 and RevenueCat without making an unconfigured SDK a runtime requirement.
Accomplishments
- Built an end-to-end native iPhone flow from scenario setup through practice, debrief, coaching, harder replay, progress, and paywall.
- Expanded a focused manager-coaching concept into a broader speaking-practice product.
- Added microphone and typed practice modes.
- Implemented five audience difficulty levels and five-dimension scoring.
- Kept model-provider secrets outside the mobile app.
- Added RevenueCat and StoreKit service boundaries, local products, privacy documentation, and focused tests.
What we learned
The most useful speaking feedback is specific to the audience and the next attempt. A single score is less helpful than showing which skill needs work and immediately replaying the same scenario under more pressure. Trustworthy AI products also need explicit boundaries around what is simulated, what is live, and where transcript data goes.
What's next
- Configure and verify the production RevenueCat project, entitlement, offering, and purchase lifecycle.
- Deploy the authenticated AI server and finalize privacy disclosures.
- Complete physical-device speech, accessibility, and subscription testing.
- Publish and validate the public App Store listing.
- Add cloud sync and explore a dedicated macOS experience.
Built With
- avfoundation
- ios
- revenuecat
- speech
- storekit-2
- swift
- swiftdata
- swiftui
- xcode
Log in or sign up for Devpost to join the conversation.