πŸ—οΈ Cooper Master Game Plan
Living document β€” Atlas updates this as things ship. Last updated: April 6, 2026 — 12:00am CT
Legend: Do now In progress Day 1 Day 2 Day 3 Item = Complete
Path 1: Nail the Core Path 2: Go to Market 0 / 0 complete
0%
PATH 1 Nail the Core β€” Get 10 users to daily habit
COOPER_UX LAW #1: The agent must do something impressive within 60 seconds of email connect. If it doesn't, they leave and never come back.
Sprint 1A β€” OAuth + Connect Moment
Fix Google OAuth exchange end-to-end with real user test
Confirm GOOGLE_CLIENT_ID env var live in production, do full real OAuth flow, verify token exchange returns user profile correctly
πŸ”΄ NOW1–2 hrs
Add connection status indicator β€” always visible green/grey dot
User never guesses if connected. Green badge replaces connect bar after OAuth. Persistent in header.
πŸ”΄ NOW1 hr
Auto-summarize inbox immediately after connect β€” agent speaks first
When OAuth returns, agent automatically pulls 5 recent emails and summarizes without being asked. First magic moment, zero effort from user.
πŸ”΄ NOW2 hrs
Human error messages + retry button on OAuth failure
Never show raw error codes. "Something went wrong β€” tap here to try again." Clear, friendly, actionable.
πŸ”΄ NOW30 min
Sprint 1B β€” Wire Email Sending
Wire chat API to Gmail send + MS Graph send
When user asks agent to send email, it actually sends it. Biggest gap in product β€” agent reads but can't act.
πŸ”΄ NOW2–3 hrs
Email preview card in chat before sending β€” Send / Edit / Cancel
"Here's what I'm about to send β€” confirm?" Inline buttons. User always in control. Trust is everything.
πŸ”΄ NOW1 hr
Post-send confirmation + sidebar "Sent by agent" log
"βœ… Sent to Stacy Burns" confirmation in chat. Sidebar shows sent history.
πŸ”΄ NOW1 hr
Sprint 1C β€” Living Page
Auto-populate sidebar: top 5 emails + next 3 calendar events after connect
Page feels alive the moment they land. Refresh every 5 minutes silently.
πŸ”΅ Day 12–3 hrs
Quick action chips: "Draft reply", "Schedule meeting", "Summarize thread"
Pre-fill the chat input. One tap to the most common actions. Reduces friction to zero for new users.
πŸ”΅ Day 11 hr
Sprint 1D β€” Mobile UX (In Progress)
iOS Enter key sends message β€” definitively fixed
Newline-detection in input event. Must be confirmed on real iPhone before moving on.
⚑ In ProgressTonight
Send button always tappable β€” never gets stuck disabled
Removed disabled default. dispatchChatSend guards empty sends internally. setInputLock no longer touches button state.
⚑ In ProgressTonight
Sprint 1E β€” Google App Verification
Submit Cooper for Google OAuth verification
Removes "unsafe" warning permanently. Requires: privacy policy, homepage, domain verify, scopes justification. Start the clock now β€” takes 1–4 weeks.
πŸ”΅ Day 11 hr
Add in-moment explainer before Google warning screen
Branded interstitial before OAuth: "Google will show a safety screen β€” here's what to tap." Kills the fear before it happens.
πŸ”΅ Day 11 hr
Sprint 1F β€” Telegram Agent Upgrade
Telegram agents read + summarize inbox from connected Gmail/Outlook
"Read my emails" in Telegram pulls from connected account. Same brain, two surfaces.
🟒 Day 22–3 hrs
Telegram email send: draft β†’ preview β†’ confirm β†’ sends
"Send [person] an email" in Telegram works end to end with confirmation step.
🟒 Day 22 hrs
Telegram calendar: "What's on my calendar this week?" works
Pulls from connected Google Calendar or Outlook Calendar, returns clean summary.
🟒 Day 21 hr
PATH 2 Go to Market β€” Build what strangers pay for
COOPER_UX LAW #2: A stranger has 90 seconds. If they don't get it, they're gone. The product must explain itself through what it does, not what you say.
Sprint 2A β€” Public Homepage
Build real public homepage β€” hero + demo GIF + single CTA
One line, one demo GIF (agent reading email + drafting reply), one "Get your agent β†’" button. 15-second pitch.
πŸ”΅ Day 13–4 hrs
Add social proof + pricing preview to homepage
"Join X early users" counter, anonymized screenshots, "Free to try β€” paid plans coming soon" anchor.
πŸ”΅ Day 11 hr
Sprint 2B β€” Signup Flow Overhaul
Single-screen signup: name β†’ agent name β†’ connect email β†’ done
No account, no password. Device-based. Signup to first wow moment under 2 minutes.
πŸ”΅ Day 12–3 hrs
Agent name suggestions during signup β€” tap to select or type own
Aria, Luna, Max, Rex… Gets users emotionally invested in their agent immediately.
πŸ”΅ Day 130 min
Sprint 2C β€” Integration Hub
Build integration grid UI β€” connected states + coming soon tiles
QuickBooks, Stripe, Calendly, HubSpot, Notion, Slack, Dropbox visible. Seeds expectation that Cooper is an OS, not a chatbot.
🟒 Day 23–4 hrs
Wire QuickBooks Online OAuth β€” P&L, invoices, cash flow on demand
Business users' #1 ask. "What's my cash position?" β†’ real answer from their books.
🟒 Day 24–5 hrs
Wire Stripe API key connect β€” revenue, MRR, recent transactions
User pastes API key β†’ agent answers "What's my MRR this month?" instantly.
🟒 Day 22–3 hrs
Power user: paste any API key β†’ agent interprets and uses it
Long tail covering everything we can't predict. Claude interprets the API schema and makes calls.
🟒 Day 23–4 hrs
Sprint 2D β€” Billing Infrastructure
Stripe Checkout β€” Free / Personal $19 / Pro $49 / Business $199
Webhook β†’ unlock features in KV per user. Paywall hits after wow moment, not before.
πŸ”΅ Day 34–5 hrs
Usage metering β€” track messages/month, enforce free tier at 50
Soft prompt at 40, hard at 50. "You've been busy β€” unlock unlimited for $19/mo."
πŸ”΅ Day 32–3 hrs
Sprint 2E β€” Agent Personality Layer
3-question personality setup during signup β†’ shapes agent tone + defaults
"Casual or professional?" / "What do you mostly need help with?" / "How should I address you?" Stored in KV, referenced on every reply.
πŸ”΅ Day 32–3 hrs
Agent proactive follow-ups: "You haven't replied to [person] in 3 days"
The difference between a tool and a relationship. Churn drops to near zero when the agent feels like it's watching out for them.
πŸ”΅ Day 33–4 hrs
Sprint 2F β€” Admin Dashboard
John's admin dashboard β€” all agents, connection status, last active, message volume
meetcooper.ai/admin. See all users at a glance. Green = active + connected. Grey = needs nudge. This is the B2B product.
πŸ”΅ Day 33–4 hrs
Broadcast message: push update to all agents at once from dashboard
"Big feature just shipped" β†’ all agents deliver it in their next conversation.
πŸ”΅ Day 31–2 hrs