SAGE is an AI coach for difficult conversations. Describe a situation and explore its dynamics, then generate possible responses in different tones informed by ideas from The 48 Laws of Power.
Why I built it
Sometimes the hardest part of a difficult conversation is working out what to say before you say it. I built SAGE as a place to think through those situations, using ideas from The 48 Laws of Power to explore different approaches. The product is still evolving, especially the part that matters most to me: making an AI conversation feel natural rather than like filling out a form.
| Year | 2026 |
| Type | Mobile app |
| Client | Personal project |
| My role | AI integration, mobile engineering |
| Platform | iOS & Android |

Rather than producing a single reply without context, SAGE aims to help users consider the situation and compare different ways of approaching a conversation.

Sage Splash Screen

Sage Analysis View

Sage Voice Input

Sage Live Coach

Sage Conversation Simulator

Sage Conversation Detail

Sage Conversation Follow-up

Sage Conversation Loading

Sage Learn: The 48 Laws

Sage Learn Loading

Sage Library

Sage Delete Conversation
Challenge
The main challenge was getting consistent, structured responses from AI services while handling rate limits, malformed output, and voice transcription failures without breaking the conversation flow.
Action
API key rotation and quota recovery
I built an eight-key rotation system that tracks exhausted keys and temporarily locks out keys that hit their quota. This gives the app a way to try another available key when a request is rate-limited.
Voice input and response validation
Voice input can use Gemini or Groq Whisper, with a fallback path. I also validate structured AI responses with Zod and handle output that does not match the expected schema.
Custom mobile interactions
I built the mobile interface with Reanimated and Gesture Handler, adding motion and haptic feedback to key interactions.
Result
SAGE has helped me work through practical AI integration problems, including quota handling, structured response validation, and alternative paths for voice transcription. The product remains in development as I refine the conversation experience.