---
id: "2.11"
title: "Onboarding"
dept: product
status: draft
owner: Param
branded: false
last_verified: 2026-10-26
sources:
  - "brew origin/main b91e364: SCOPE.md:11, 24; SPEC.md:90-100"
  - "brew origin/main: auth.js:31, public/app.js:276, 762-779; public/questions.js:2-40; build.js:222-239, 363, 395; confirm-remind.js:114; shopify-app.js:3"
  - "brand-directions/_shared/product-model.md:34, 37-49"
  - "brand-directions/_shared/ia.md:85-93"
  - "brand-directions/book/content/c1.js c-1b; d1.js d-5"
  - "brand-directions/BRIEF.md section 3.5"
  - "memory: brew-access-rules, brew-feed-open-moves, brew-v2-onboarding, brew-shopify-app-review, brew-team-jams, brew-closed-store-gate"
---

# Onboarding

## Answer

Onboarding takes a founder from a pasted link to a first hand-off: paste, sign in, watch the read, answer three questions, see the reveal, then heart one, make one, hand off one.

## Today

| Step | What the build does | Source |
|---|---|---|
| 1 Paste | One box and Build my feed; a name instead of a link is refused inline | [src: docs/handover/product/02-user-journeys.md:7] [src: brew-qa-status-2026-10-19.md FEED-QA-26] |
| 2 Sign in | Google; only the brand's own email, an invite or staff; three new brands a day per person | [src: auth.js:31] [src: public/app.js:276] [src: build.js:222-225] |
| 3 Reading | Steps open, brand, catalog, reviews, ads, site, answers, each with a real finding | [src: SPEC.md:92] |
| 4 Questions | Five on the reading screen: seat, what first, channels, lead products, rivals; answers kept per person | [src: public/questions.js:36-40] [src: memory brew-v2-onboarding] |
| 5 Setup | Check what we read, seat, want, connect, team; a refresh reopens the same step | [src: public/app.js:764] |
| 6 Claim | The first person with the brand's email owns it; starting a read never claims | [src: memory brew-access-rules] |
| 7 Plays start | Only on the first feed open; reminders at 3 hours and a day; "your first Plays are ready" email | [src: build.js:239] [src: confirm-remind.js:114] [src: build.js:395] |
| 8 Invite | Onboarding ends with Invite your team; same domain colleagues join | [src: SCOPE.md:24] |

Other ways in:

| Who | Today | Source |
|---|---|---|
| Invited teammate | Invite email, join page, the brand | [src: memory brew-team-jams] |
| Shopify store | Install from Shopify; the store's domain picks the brand; installer is owner if unclaimed | [src: shopify-app.js:3] [src: memory brew-shopify-app-review] |
| Closed store | Read from the admin, team only until it opens | [src: memory brew-closed-store-gate] |

The 25 Oct audit counted about 11 screens or overlays and up to 14 choices before the first card, with six skip labels [src: brand-directions/book/content/d1.js d-5 ob-ten-minutes].

## Tomorrow

| Item | Version | Tag | What it is |
|---|---|---|---|
| Paste and sign in | v1 | Stays | Same order, restyled |
| Three quick questions during the read | v1 | New | What you handle, your next big moment, one thing you never want to post; each answer visibly sharpens the picks [src: brand-directions/BRIEF.md 3.5] |
| Five full screen questions | v1 | Goes | Their data paths stay |
| The reveal, Here's your store | v1 | New | One sourced, shareable finding, then the picks |
| Check page | v1 | Changes | Optional, inside What we know about you, no timer; the claim must still happen |
| Setup steps, ready overlay, swipe tuner, welcome card | v1 | Goes | Connect and invite move to Settings |
| First win bar | v1 | New | Heart one, make one, hand off one, shown in the first week only |
| One skip label, Skip | v1 | Changes | Six become one |
| Memory meter | v1 | New | How much we know about the store, never results |

## How we do it

1. Time five first runs on production, paste to first hand-off, before quoting ten minutes anywhere.
2. Test outsider paths after any auth change: a Gmail account must see the wall.
3. Never start a full read only to test onboarding; use a partial run or the demo [src: memory feed-for-all-brands].

## Numbers

| Step | Counts | Where measured | Status |
|---|---|---|---|
| Pasted | Build my feed taps with a valid address | Build requests | Proposed |
| Signed in | Work emails accepted; refusals counted apart | Visitors log since 23 Oct | Proposed, log exists [src: memory brew-access-rules] |
| Read finished | Reads that complete all seven steps | Build status | Proposed |
| First heart, make, hand-off | Each within the first session | Decision log | Proposed |
| Second Monday | Opens the next Monday | Feed opens | Proposed |

## Open

1. **Which three questions?** Proposal: the brief's three, and keep lead products as an optional Settings row.
2. **Does an invited teammate get the questions?** Proposal: only Which of these do you handle.
3. **Can an agency start a read for a client?** Proposal: not until the brand invites them.
4. **The Shopify home says the first read takes about half an hour.** Proposal: time it inside Shopify and use the same words as the web.
