Inspiration

Your first management role can put you in conversations you have never had to handle before. A former peer keeps missing deadlines. Your boss adds another priority to an already overloaded team. Someone expects a promotion you cannot offer.

You can plan your opening sentence. The difficult part starts when the other person pushes back.

We built Headwind to give new managers somewhere to rehearse that moment. A place to try, stumble, adjust, and go again before a real working relationship is on the line.

What it does

Headwind is an iPhone app for practicing hard conversations at work.

Choose a scenario or describe a situation with a real colleague. Rehearse by voice or text with an AI counterpart who has their own priorities, concerns, and limits. They can get defensive, challenge your reasoning, or shut down. You have to listen and respond as the conversation unfolds.

Practice includes giving difficult feedback, holding a boundary, saying no, and delivering unwelcome news.

Afterward, a debrief explains how the conversation landed. It highlights specific lines from your rehearsal, connects them to leadership behaviors, and gives you something concrete to work on next time. You can take another run at the conversation while it is still fresh.

For conversations with real colleagues, Headwind also brings together context, preparation, rehearsal, and a debrief after the actual meeting.

How we built it

Headwind uses React and TypeScript, built with Vite and packaged for iOS through Capacitor. Convex handles the backend, persistent conversation context, and practice history. Google Gemini powers the AI conversations and feedback.

RevenueCat handles in-app subscriptions and entitlements, connecting access to paid features with Apple's purchase and restore flows.

We adapted an existing conversation-practice engine for workplace leadership. That meant redesigning the scenarios, counterpart behavior, and evaluation criteria around the tensions managers actually face: being clear without being dismissive, listening without abandoning a boundary, and staying constructive when a conversation gets uncomfortable.

Challenges we ran into

One of the hardest problems was making the counterpart resist in a believable way. If they agree immediately, the user never gets to practice handling disagreement. Each character needed a reason to push back and a response that made sense in the situation.

Feedback was another challenge. A useful debrief needs to explain why something worked and point to evidence in the conversation. We designed it around observable behaviors and the user's own words, leaving room for different leadership styles.

Voice practice also brought practical engineering challenges: microphone permissions, audio interruptions, session timing, and keeping the conversation responsive inside an iOS app.

Accomplishments we're proud of

We're proud of creating a rehearsal loop where a difficult moment becomes something you can work on: try the conversation, see how it landed, and take another run.

The same situation can be handled in more than one effective way. Headwind gives people room to find an approach they can actually use, in their own voice.

We also brought that experience into an iPhone app with voice and text practice, persistent context, and subscription infrastructure.

What we learned

The most revealing part of a rehearsal often comes after the opening line. What happens when the other person disagrees shows whether the manager can stay clear, curious, and steady.

We also learned that feedback becomes more useful when it is specific enough to act on immediately. A quoted sentence and one focused adjustment give the next rehearsal a purpose.

What's next for Headwind

Our next focus is learning from managers using Headwind before real conversations: which scenarios feel authentic, which feedback changes their next attempt, and where the rehearsal needs more depth.

We want Headwind to become something people reach for when they think, “I need to have this conversation, and I don't know how to start.”

Built With

Share this project:

Updates

Submission history