Ally Co

Voice-first roleplay training for real-life allyship (Gemini + ElevenLabs + Next.js)

Live demo: https://allyco.vercel.app/

The problem

A lot of people genuinely want to be supportive when they see bias or harm happening, but in the moment they:

  • freeze
  • don’t know what to say
  • worry they’ll escalate things
  • or only think of the “perfect line” three hours later in the shower

Allyship is a skill. Skills get better with practice. So we built a place to practice.

What Ally Co does ?

Ally Co gives you realistic scenarios and lets you practice your response using voice roleplay, then get coaching-style feedback.

On the home page, users can choose a scenario like:

  • Gender Bias (someone gets subtly undermined in a meeting)
  • Racial Microaggressions (a “joke” crosses a line in a group setting)
  • Misgendering (wrong pronouns, then everyone moves on)

Each scenario has a mission goal, like:

  • “Back them up without escalating the room.”
  • “Address it professionally, keep dignity centered.”
  • “Correct politely and support the impacted person.”

There’s also an Open Voice Chat mode where you can talk through a real situation and get guidance.

And because dopamine is a core framework now, we added Badges & Streaks:

  • “Gender Bias Champion”
  • “Dignity Defender”
  • “Respect Advocate”

Key features

  • Voice-first practice
  • Scenario-based missions with clear goals
  • Real-time coaching feedback (focused on practical, repeatable behavior)
  • Open Voice Chat for personal situations
  • Badges + completion tracking to encourage follow-through
  • Daily Streaks to encourage people to keep coming back everyday.

Tech stack

This project is built with:

  • Next.js (frontend + app structure)
  • Gemini (LLM for roleplay + feedback)
  • ElevenLabs (voice)
  • Vercel (deployment)

The goal was a smooth loop:

  1. User speaks
  2. Model responds in-character
  3. App gives coaching feedback
  4. Repeat until it feels natural

Product philosophy: “Practice > perfection”

We tried to avoid making this feel like a lecture. The point is not “say the single correct sentence.” The point is:

  • speak up sooner
  • stay respectful
  • center the impacted person
  • keep the room from exploding

So the feedback is designed to be coaching-style, not judgmental.

Where Ally Coach can be used ?

Ally Coach is built for any place where people want to respond better in real time but don’t get to practice.

Schools and Universities

  • Orientation or first-year seminars: practice speaking up in group discussions and residence life situations
  • DEI workshops: replace passive slides with active roleplay
  • Student leaders, RAs, clubs: rehearse interventions that stay calm and respectful

Workplaces and HR training

  • Manager training and onboarding: practice addressing bias without escalating the room
  • Team culture and psychological safety programs: build “say something sooner” habits
  • Remote teams: voice-first practice for awkward Slack and meeting moments

Nonprofits and community programs

  • Volunteer training: practice responding to harm in public-facing situations
  • Youth programs: confidence-building for respectful communication under pressure

The goal is simple: practice responses before the moment happens, so people freeze less and act sooner.

What was hard (because it always is) ?

  • Latency + real-time feel: voice apps feel broken if timing is off by even a little.
  • Keeping scenarios realistic: too dramatic feels fake; too mild feels pointless.
  • Feedback that’s actionable: “be better” is useless. The app needs to tell you what to try next.

What’s next ??

If we keep building Ally Co., the next upgrades are:

  • more scenarios (workplace power dynamics, public settings, friend groups)
  • difficulty levels (gentle vs direct responses)
  • better progress tracking (strengths over time, not just completion)
  • a “replay” mode to practice alternative responses

Try it

If you’ve ever thought, “I should’ve said something,” this is for you.

Live demo: https://allyco.vercel.app/

Built With

+ 6 more
Share this project:

Updates