feat(home): flag-driven getting-started hero A/B/C test - #163
Draft
NetanelBaruch wants to merge 4 commits into
Draft
feat(home): flag-driven getting-started hero A/B/C test#163NetanelBaruch wants to merge 4 commits into
NetanelBaruch wants to merge 4 commits into
Conversation
Wire the home hero getting-started CTA to the Mixpanel feature flag "website-getting-started-flow-ui-vs-cli-vs-prompt-SJw6Uc" so each visitor sees one committed flow instead of every option at once: - ui (control): primary "Get started free" signup CTA - cli: primary "npx novu connect" copy command, signup as secondary - prompt: primary copyable coding-agent prompt, signup as secondary Implementation: - Enable Mixpanel feature flags in init (autofetch on load). - lib/experiments.ts resolves the arm, registers "getting_started_flow" as a super property, and exposes the flag key + event name constants. Reading the variant fires the exposure event that assigns the visitor to the experiment. - useGettingStartedFlow hook renders the control on server/first paint, then swaps to the assigned arm. ?gsf=ui|cli|prompt forces an arm for QA. - All arms share the same block height to avoid layout shift on swap. - Add website-side copy events "Website CLI Command Copied" and "Website Prompt Copied" via an onCopy callback on CopyCommand and CopyPromptButton. Experiment stays in draft/flag disabled until this ships and each arm is QA'd. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Implements the getting-started flow A/B/C test on the home hero: each visitor sees one committed primary CTA instead of every option at once, driven by the Mixpanel feature flag.
Test plan:
02-campaigns/2026-08-04-website-flow-ab-test-plan.md(Novu-Marketing repo). Mixpanel experiment: Website getting-started flow: UI vs CLI vs Prompt (currently draft, flag disabled).uiclinpx novu connectcopy commandpromptFlag key (exact, do not rename):
website-getting-started-flow-ui-vs-cli-vs-prompt-SJw6Uc, splits 34/33/33.How
src/lib/mixpanel.tsinit (flags: true, autofetch on load).src/lib/experiments.ts(new): resolves the arm from the flag, registersgetting_started_flowas a super property (so every downstream event carries the arm), and exports the flag key + event-name constants. Reading the variant fires the exposure event that assigns the visitor to the experiment.useGettingStartedFlowhook (new): renders the control (ui) on the server and first paint, then swaps to the assigned arm once the flag resolves. All arms share the same block height, so the swap does not shift layout.Website CLI Command CopiedandWebsite Prompt Copied— fired via a new optionalonCopycallback onCopyCommandandCopyPromptButton. (The existingRun Novu Connect Command/AI prompt copiedevents fire in the terminal / post-signup dashboard, not on the site.)QA
Force any arm locally with a query param, no Mixpanel assignment involved:
/?gsf=ui·/?gsf=cli·/?gsf=promptConfirm in Mixpanel Live View that reading the flag emits the exposure event and that
Website CLI Command Copied/Website Prompt Copiedarrive with thegetting_started_flowproperty.Launch (after merge + QA)
Open decision for review
The plan defines the control as a signup-primary CTA, but the current hero shows the CLI command + prompt side by side (no signup). So this PR makes
uia signup button rather than "the current hero". If you'd rather the control mirror today's hero exactly, say so and I'll adjust the control arm (the flag/experiment already treatsuias control either way). Signup destination used:ROUTE.dashboardV2AgentsSignUp.Base branch is
home-page-update(where the home hero lives); retarget if Pixel Point works from a different integration branch.🤖 Generated with Claude Code