Inspiration

Most of us have a conversation we keep putting off. Telling someone their work has slipped. Asking for a raise. Saying no to a boss who is very good at not hearing no. We built The Hard Part, an app where you practise those talks against someone who pushes back. Practice like that is a voice thing, so it belongs on the assistant already in your kitchen.

What it does

Say "help me practise saying no to my boss". Alexa finds a scenario, sets the scene, and the other person answers in character: a boss who flatters, a report who gets angry, a colleague who agrees with everything and changes nothing. You talk it through, out loud. Say "how did I do" and you get a scorecard: clarity, empathy, firmness and outcome, your two strongest lines quoted back to you, and one thing to try next time.

It remembers. Next time it starts with last time's tip. Tell it about a real conversation you have coming up and it builds a practice partner from your description, lets you rehearse it, and asks you afterwards how the real one went.

How we built it

  • A self hosted MCP server (spec 2025-11-25, Streamable HTTP) on Cloudflare Workers, written from the spec: sessions, origin checks, protocol version checks, and input validation for seven tools.
  • Each user's practice lives in its own Durable Object, keyed by an anonymous profile key. No account, no name.
  • The scenarios are The Hard Part's own 18 cards, each with a character sheet, three curveballs, three difficulty tiers and a hidden scoring rubric.
  • Amazon Bedrock with Amazon Nova Pro plays the other person and scores the talk, through the Converse API, behind a hard daily spending cap in code. If the day's Bedrock budget is spent, a free model takes over, with its own daily cap.
  • Alexa+ developer tools are open to select partners, so we built a web page that plays the part of Alexa+: it hears you, decides which tool to call, calls the server over MCP, speaks the reply and draws an Echo Show style card. A "behind the scenes" panel shows every MCP call.
  • Tested end to end: unit tests for the protocol and every tool, and headless play-throughs of the voice page, including a crisis word stopping the practice, an expired session renewing itself, and the server going away.

Challenges we ran into

Keeping a role play honest in short spoken turns. A good practice partner pushes back, but a voice reply has to be three sentences, not three paragraphs. And the scorecard must only quote what you really said, so the server checks every quote against your own lines before it shows one.

Accomplishments that we're proud of

A practice partner that remembers you between sessions and follows up on a real conversation, not just a single question and answer.

What's next

The same server inside The Hard Part app, so a practice started on the speaker can be finished on the phone.

Built With

  • amazon-bedrock
  • amazon-nova
  • cloudflare-workers
  • durable-objects
  • mcp
  • playwright
  • typescript
  • vitest
  • web-speech-api
Share this project:

Updates

Submission history