From the moment a realtor's card clears to "I see my first content live." Direct routing, no email-and-wait, no double-email confusion. The deferred-cancellable email pattern keeps the safety net without the chaos. The wizard + bottom-right onboarding video give them their first 5 minutes of value without a popup hijack.
Today: realtor pays, sees a generic Stripe success page, gets an email "create your password" hours later, half forget, half close the email tab, half click but find a confusing portal. Tomorrow: Stripe success β password creation β password set β auto-login β wizard greets them β onboarding video peeks from the corner. Sub-60 seconds. Email backup fires only if they bail.
success_url redirects with one-time signed token
60-sec password set, name fields pre-filled from Stripe
Direct to /dashboard?welcome=true Β· no second login screen
Wizard overlay greets them Β· video widget bottom-right
One more step. Set your password and you're in. We're already pre-loading your first week of content while you do this.
Welcome=true on the URL triggers both. The wizard sits center-top β non-trapping, the user can click around if they want. The video widget is corner-pinned, pulsing softly to draw the eye but never blocking content. Both can be dismissed; both persist their state across sessions.
Industry-standard pattern (Notion, Linear, Stripe Atlas use this exact flow). Email is queued for delivery 5β10 minutes after Stripe success β not sent immediately. If the user sets their password in the portal within that window, the email gets cancelled before delivery. If they bail, the email fires with the same token. Solves your double-email problem at the system level.
Implementation note for Otto: the wizard's 4-step state should read from the SAME data source as F-044's 7-day adoption flow. user.brand_profile_complete Β· user.first_project_submitted Β· user.has_connected_social Β· user.tour_watched β single source of truth. Wizard reads, doesn't write. When any of those flips true (regardless of HOW it flipped true), the wizard step shows β.