Skip to content

feat(shared): onboarding personas quick-start with tag pop animation#5939

Open
davidercruz wants to merge 2 commits intomainfrom
davidercruz/onboarding-personas
Open

feat(shared): onboarding personas quick-start with tag pop animation#5939
davidercruz wants to merge 2 commits intomainfrom
davidercruz/onboarding-personas

Conversation

@davidercruz
Copy link
Copy Markdown

@davidercruz davidercruz commented Apr 29, 2026

Changes

Adds an A/B-gated persona picker (Frontend, Backend, AI/ML, DevOps, etc.) inside the onboarding tag step. Selecting a persona batch-follows ~10 curated tags via the existing useTagAndSource().onFollowTags path, and a small staggered pop animation runs across the matching tag chips so the selection reads as intentional.

  • PersonaSelector renders the API-backed persona list using existing Button chip primitives (Float / Primary+Cabbage) so visual style stays consistent with the tag picker
  • New personaPopBus module-scoped event bus lets TagElement react to persona clicks without prop-drilling through TagSelection
  • New tag-pop Tailwind keyframe (scale + cabbage glow with a back-ease bezier); animation auto-clears via onAnimationEnd
  • Single-select; switching a persona unfollows the previous tag list and follows the new one; clicking the active persona deselects
  • Backend (onboardingPersonas query) is already shipped in daily-api

Events

Type event_name value
New select onboarding persona target_type: 'persona', target_id: <persona id>, extra: { action: 'select' | 'switch' | 'deselect', tags_count, previous_id }

Experiment

Yes — gated behind the new onboarding_personas GrowthBook flag (featureOnboardingPersonas, default false). Slack #experiments enrolment to be posted before merge.

Important

Please do not merge the PR until the experiment enrolment is approved.

Manual Testing

On those affected packages:

  • Sanity-checked the webapp onboarding flow
  • Sanity-check in extension
  • Sanity-check companion is unaffected

Did you test the modified components media queries?

  • MobileL (420px)
  • Tablet (656px)
  • Laptop (1020px)

Did you test on actual mobile devices?

  • iOS (Chrome and Safari)
  • Android

🤖 Generated with Claude Code

Preview domain

https://davidercruz-onboarding-personas.preview.app.daily.dev

Adds an A/B-gated "persona" picker (Frontend, Backend, AI/ML, etc.) inside
the onboarding tag step. Selecting a persona batch-follows ~10 curated tags
and triggers a staggered pop animation on the corresponding tag chips so
the selection feels intentional. Gated behind the new
featureOnboardingPersonas GrowthBook flag.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
daily-webapp Building Building Preview Apr 29, 2026 9:03pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
storybook Ignored Ignored Apr 29, 2026 9:03pm

Request Review

- Multi-select up to 3 personas (4th click no-ops, button looks
  disabled while at the cap).
- Picking a persona now triggers the recommendedTags query for its
  tag list, with a soft-pruning rule: previous recommendation batch
  is evicted from the cache when a new one arrives, while curated
  and selected tags persist.
- Extract useRecommendedTags hook so manual tag clicks and persona
  clicks share the same mutation, slicing, splice-at-anchor, and
  prune logic. Default to 2 recommended tags client-side.
- Adds a spark-burst flourish (5 procedural sparks per chip) to the
  existing pop animation, lifted from the leaderboard crown-spark
  pattern.
- Expose a recommend-request bus so PersonaSelector stays
  self-contained without prop-drilling through TagSelection.
- Subtitle copy on the persona row to introduce the quick-start.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant