25 hard moments. One library. The right words, when you can’t find them.

100 ways to say the things that matterin 30 seconds.

Pick the moment from 25. Tell us five things — who it’s for, how heavy it lands, the hard question at the center of it, what happened, and the tone you want. We write you three real options, shaped to your specific situation, in your voice, for the person on the other end.

★★★★★
First 3 messages free on every moment · no card · $9.99 unlocks all 25.
One price. No subscription. Ever.
Person looking at their phone, drafting a hard message
YOU
“25 different things I don’t know how to word.”
US ↓
“You were right to be upset. I’m sorry — the real kind.”
25 live moments
30s
to a real message
3
options every time
$9.99
once. yours forever.
0
subscriptions, ever
The library

25 moments live. One hard question per moment that changes the answer.

Each moment is built around a hard question that calibrates the output. Each one comes with banned phrases the model can’t produce, three real options per request, and the same humanity rules across all 25.

First three messages free on every moment. $9.99 unlocks unlimited use across all 25. No subscription. Refunds within 7 days.

Person staring at a phone screen, trying to write a hard message
Real you, 11:42pm. Six drafts in. Nothing’s right.
The Problem

You meant it to land. But you’ve been deleting and retyping for an hour.

Hard conversations are unevenly distributed in skill — and the cost of getting them wrong is enormous. Here’s why nothing you’ve tried so far is working.

  • Greeting cards say one thing, one way. And they cost more than this product.
  • ChatGPT happily produces the empirically-failing phrases — “I’m sorry you feel that way,” “sending love and light,” “thanks so much!” — because it can’t see the question underneath.
  • Asking a friend takes two days and exposes the situation to someone else.
  • Winging it is how every bad message in the history of bad messages got sent.
  • Your own draft doesn’t know that each moment has a specific question to honor — and so it doesn’t honor any.
How it works

Pick a moment. Six taps. Three real options back.

We don’t hand you a chat box. We ask the six questions a wise friend would ask — in the order they’d ask them — and write back something you’d actually send.

Two people sitting together at a kitchen table
Step 01

Who is this for?

Partner, parent, boss, friend, ex. Up to 13 options because the relationship changes every word.

Person looking thoughtful, holding their phone
Step 02

How heavy is it?

A scratch. A real hurt. Something broke. We calibrate the weight of the message to the size of what happened.

The moat ◆
Two people in a difficult conversation by a window
Step 03

The hard question.

The one at the center of each moment. For /sorry: “were you in the wrong?” For /no: “saying no, or avoiding?” For /thank-you: “proportional, or compensating?” The answer changes the entire output.

Person writing on a phone at a quiet desk
Step 04

One line. What happened.

Plain language. No need to perform. The specifics you give — names, places, the time on the clock — show up verbatim in your output.

Hands cradling a warm mug at a window
Step 05

What tone?

Three or four real registers per moment. Gentle. Sincere. Brief. Firm. Heartfelt. Warm. Not the same line with adjectives swapped.

A handwritten letter on a wooden table
Step 06

What length?

Text-message. Email. Letter. One block, two paragraphs, or three. Most messages should be short. Letters are for the messages someone keeps.

★ This is what real output looks like

Three real options. No filler.

A user typed: “My best friend drove three hours to take me to chemo and back last Tuesday. She didn't ask me a single hard question on the way. I want to thank her without making her feel like she has to do it again.”

names the specifics, doesn’t bind her

Tuesday. The driving and the sitting and the not-asking-too-many-questions and the way you knew when to talk and when to just be in the car with me. I noticed every piece of it.

I am not asking you to do it again. I am telling you that I will not forget that you did it once.

/thank-you · sincere · medium
names the cost

Thank you for Tuesday. Not the generic thanks — the specific one. You drove three hours each way and you let me be quiet when I needed to and you talked when I needed that.

I see what it cost you. I am not making this a thing you have to keep doing. I am marking that you showed up the way I needed you to.

/thank-you · sincere · medium
names what she gave that I couldn’t ask for

I want to say thank you for Tuesday without making it weird and without making you feel obligated to do it again. You showed up the way I would have wanted to ask you to but didn’t know how.

That counts more than I can put in a text. I love you.

/thank-you · sincere · medium
Real people. Real sends.

Words that actually landed.

Submitted by users with permission, names changed. Receipts in the dashboard.

★★★★★
“I’d been drafting the text to my mom for three weeks. Three weeks. Wrote four, deleted four. This thing gave me one I sent in five minutes — and she called me crying. In a good way.”
Casey M.
Casey M. Used /sorry for: an adult-child / parent message
★★★★★
“Picked ‘not really’ on the hard question and braced for the AI to ignore me. It didn’t. It wrote me a repair message that wasn’t a confession. That’s the moment I paid.”
Daniel R.
Daniel R. Used /sorry for: a misread at a party
★★★★★
“I snapped at a coworker in standup. The brief version was three sentences and honestly cleaner than anything I’d have written. Sent it before lunch, we’re fine.”
Priya N.
Priya N. Used /sorry for: a workplace apology
Why this beats the alternatives

You already tried the other options.

A greeting card
$6.99 + drive to CVS
  • ✕ Says one thing, one way
  • ✕ Generic, prewritten, by a stranger
  • ✕ Takes a day to actually arrive
  • ✕ Says nothing about your situation
  • ✕ Costs more than this
ChatGPT
Free, blank box
  • ✕ Won’t ask if you were in the wrong
  • ✕ Defaults to “I’m sorry you feel that way”
  • ✕ Three rounds of prompting to get something usable
  • ✕ Tone shifts are cosmetic, not structural
  • ✕ No memory of what makes each moment land
★ This product
100 Ways to Say ___
$9.99 once · everything included
  • ✓ Asks the hard question at the center of each moment
  • ✓ Three real options, not three rephrasings
  • ✓ Tones produce structurally different writing
  • ✓ Built-in traps: 8-13 banned phrases per moment baked into the system prompt
  • ✓ Refund inside 7 days if it didn’t land
Pricing

One price. No subscription.

Start free on every moment. $9.99 once unlocks the library forever. Add-ons are one-time and never expire your account.

Try it
$0
Free
  • 3 messages free on every moment (75 total)
  • ✓ Try every moment in the library
  • ✓ No card, no signup pressure
  • ✓ Sample any tone, any length
Pick a moment ↓
★ The whole library
One price · forever
$9.99
All access
  • 100 messages a month, every month, forever
  • ✓ All 25 moments + every future moment we ship
  • ✓ One-time. No subscription. Refundable for 7 days.
  • ✓ Generation cap resets on the 1st (fair-use)
Unlock everything →
Add-on
$19.99
Voice Profile
  • ✓ Upload 3–10 writing samples
  • ✓ Every message calibrated to your voice
  • ✓ One-time, applies to all 25 moments
  • ✓ Requires All access
Set up voice profile →
🎁 Give the gift of a moment
$9.99 · All-access for someone who needs it · code goes to their inbox
Send a gift →
⚡ Need more this month?
$2.99 for +50 · Adds to your current month only · available from your dashboard
Buy overage →

Securely billed through Stripe. We never see your card. Refund within 7 days by replying to the receipt.

FAQ

The honest answers, including the awkward ones.

Is this just a wrapper around ChatGPT?

No. It uses Claude under the hood — but the value isn’t the generation. It’s the five questions we ask per moment, in the order we ask them, with a different hard question for each of the 25 moments that changes the entire output. Plus the inference layer that detects your generation, your region, your relationship-history, and produces output that sounds like you. Strip those out and the product is gone.

What if I weren’t actually in the wrong?

Pick “not really” on step 3. We’ll write you a repair message instead of an apology — words that acknowledge the impact without confessing to something you didn’t do. Most apology tools can’t do this. It’s the case we’re proudest of.

Will the words actually be good?

Yes. We bake banned phrases (“I’m sorry you feel that way,” “sorry if,” “sorry but,” and six more) directly into the system prompt, so they never appear in your output. Every option must do three jobs at once: name the harm, take responsibility, close the loop. If a draft fails any of those, the model rewrites it.

Why isn’t this a subscription?

Because most people only need this a handful of times a year. A subscription would be a worse fit for the moment — you’d feel obligated to use it. One-time payment matches one-time use. If we’re wrong and you do use it constantly, $9.99 once is already a deal.

What about privacy — do you keep what I write?

We store the metadata of generations (which moment, which tone, which relationship category) to enforce the free-tier cap and improve outputs. We do not store your context sentence or the AI’s generated apologies after the session ends. Your draft isn’t training data and never will be.

What if I hate the output?

Regenerate. Free, unlimited, no penalty. Most users get the one they send within 1–2 generations.

Can I get a refund?

Yes — within 7 days, no questions. Reply to your Stripe receipt and we’ll refund. We’d rather lose $9.99 than have you carry a grudge about it.

What’s coming next?

/no (declines & boundaries), /thank-you, /condolences, /goodbye, /space, and /money. If you bought all-access, every one of those is already unlocked for you the day it ships.

You already know what you want to say.
We’ll help you find the words.

Browse all 25 moments  →

First three on us. No card. 30 seconds.