PM analysis · page coverage

Do we have all
the right pages?

Honest audit of what's built vs. what a real, transacting, launchable product needs. STRIPE = Stripe hosts it, we wrap it. P0 = needed for launch. P1 = fast-follow.

The verdict

We have a strong happy path — 30 pages that cover a fan booking a call and an artist running a night. What we're missing is almost everything that isn't the happy path: the payout/Stripe wrapper and its states, payment-failure and refund states, trust & identity, and the booking lifecycle (cancel / reschedule / no-show). That's not polish — for a product that moves money, those states are the product.

On your Stripe / payout / "connect your bank" question

Good news, and it's a real architecture decision: because we use Stripe Connect Express, Stripe hosts the scary pages — connect a bank, connect a debit card, SSN / ID verification, tax forms. We deliberately do not build those (we deleted our SSN screen for exactly this reason). We redirect out to Stripe's flow and they send the user back.

So the gap isn't "build a bank-connect page." The gap is the wrapper around Stripe's hosted flow — the entry, the return/status page Stripe redirects back to, and the ongoing payout states. Those are on us, and today only the entry (/payout) and a payout list (/payday) exist.

💸 Money out — creator payouts & Stripe Connect

2 have · 7 missing

Have

  • /payout — "Get paid" entry (link a debit card)
  • /payday — payout history list

Missing

  • Onboarding return / status — the page Stripe redirects back to: "you're verified" / "we need a bit more" / "pending". Stripe's flow requires a return_url + refresh_url. P0 STRIPE
  • Payout account states — pending, restricted (needs more info), active, paused, payout failed. P0
  • Change payout method — swap debit card / bank (links to Stripe). P1 STRIPE
  • Instant vs standard payout — choice, eligibility, the instant fee. P1
  • Tax documents — 1099-K access, W-9 status. P1 STRIPE
  • Single payout detail / receipt — one payout, its calls, status. P1
  • Bank-account fallback entry — the "use a bank instead" toggle actually going somewhere. P1 STRIPE

💳 Money in — fan payments

2 have · 6 missing

Have

  • /book — checkout (confirm, verify, pay)
  • /confirmed — receipt-ish confirmation

Missing

  • Payment failed / card declined — the single most common real path. P0
  • 3-D Secure / bank challenge — return handling after Stripe's redirect. P0 STRIPE
  • Refund confirmation + status — we promise refunds in copy; no page shows one. P0
  • Payment methods management — /account links to nothing real. P1
  • Proper receipt / invoice — emailable, itemized. P1
  • Add-time charge confirmation — the mid-call authorization result. P1

🛡️ Trust, safety & identity

0 have · 6 missing

Have

  • Nothing built yet

Missing

  • Creator identity verification + "verified" badge — how does a fan know it's really that athlete? Impersonation is existential for a celebrity product. P0
  • Report a call / a person — /wrapped links to it; no page. P0
  • Block a user (both directions). P1
  • Dispute / partial-refund request — "the call cut out." P1
  • Community guidelines / acceptable use — the SFW line that protects the brand. P0
  • Age gate / eligibility at sign-up. P1

📅 Booking lifecycle

1 have · 5 missing

Have

  • /booked — upcoming + past

Missing

  • Cancel a booking (fan) + refund result. P0
  • Reschedule a call. P1
  • Artist cancels → auto-refund confirmation to fan. P0
  • Artist-initiated refund (goodwill). P1
  • Sold out / no availability state on a payphone. P1

📞 The call — edge states

3 have · 4 missing

Have

  • /lobby, /call, /oncall — the live states

Missing

  • Artist no-show → refund flow (copy exists, no screen). P0
  • Reconnecting / connection lost. P1
  • Camera/mic blocked — permission-denied help. P1
  • Unsupported browser / device. P1

👤 Accounts & auth

2 have · 3 missing

Have

  • /signin — passwordless
  • /account — settings shell

Missing

  • Account recovery — lost or changed number. P0
  • Email capture — for receipts & reminders. P1
  • Delete account / data export — CCPA/GDPR. P1

⚖️ Legal & 📣 marketing

4 have · 5 missing

Have

  • /terms, /privacy, /help, /compare

Missing

  • Creator agreement — separate from consumer ToS; the talent contract. P0
  • Refund policy — explicit, linkable. P0
  • Cookie consent banner. P1
  • Category / browse-by-type pages (SEO). P1
  • About / press / trust page. P1

✉️ Notifications (comms, not pages — but required)

1 partial · 5 missing

Have

  • Drop SMS (preview only)

Missing

  • Email/SMS: booking confirmed, reminder before doors open, receipt, payout sent, recording ready. P0

P0 launch list (build before we take a real dollar)

Payout onboarding return/status · payout account states · payment-failed · refund confirmation · creator identity + verified badge · report a person · community guidelines · cancel booking · artist-cancel auto-refund · artist no-show refund · account recovery · creator agreement · refund policy · the core transactional emails.

Net: ~14 P0 pages/flows and ~20 P1. None are blocked by engineering — they're blocked by decisions (SFW policy, refund rules, identity method) and the same three accounts (Stripe, LiveKit, Twilio). Stripe Connect Express spares us the hardest ones.

Have: 30 pages · Missing: ~34 (14 P0, ~20 P1). PM coverage audit, 07/2026.