Skip to content

Add "Install with AI" alongside "Get started" on the context warehouse page - #19453

Closed
ivanagas wants to merge 3 commits into
masterfrom
posthog/context-warehouse-cta-experiment
Closed

Add "Install with AI" alongside "Get started" on the context warehouse page#19453
ivanagas wants to merge 3 commits into
masterfrom
posthog/context-warehouse-cta-experiment

Conversation

@ivanagas

@ivanagas ivanagas commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Changes

Adds an "Install with AI" button next to "Get started" on /context-warehouse, revealing npx @posthog/wizard warehouse (copying the pinned npx -y @posthog/wizard@latest warehouse). Both CTAs on the page render through a new ContextWarehouseCTA component, so a visitor gets one consistent path from top to bottom.

Additive rather than a replacement: "Get started" keeps its place and the terminal route is offered beside it, matching the pattern used elsewhere on the site.

Clicks are tracked as contextwarehousecta-getstarted-clicked / -installwithai-clicked / -copy-clicked, mirroring the homepage homepagecta-* naming. There's no experiment behind this — the events are there so the split between the two routes stays visible.

Why

The page was an outlier for offering no AI-install option at all, even though the wizard has a warehouse subcommand that scans a codebase and connects every source it finds rather than making you configure them one at a time.

This started out as an A/B test of three CTA variants, but the page doesn't get enough traffic to power it — detecting even a large relative lift in warehouse sources connected would have taken about eleven weeks, and anything subtler was out of reach. So the additive variant ships for everyone instead of waiting on a result we couldn't get. Earlier commits on this branch have the experiment scaffolding if it's ever worth revisiting at higher traffic.

Checklist

  • I've read the docs and/or content style guides.
  • Words are spelled using American English
  • Use relative URLs for internal links
  • I've checked the pages added or changed in the Vercel preview build
  • If I moved a page, I added a redirect in `vercel.json` (n/a — no pages moved)

Created with PostHog from a Slack thread

Puts both CTAs on /context-warehouse behind the `context-warehouse-cta` flag, so
the existing in-app "Get started" button (control) can be compared against
`npx -y @posthog/wizard@latest warehouse` (test).

Follows the Home/HeroCTA pattern: client-only via RenderInClient, flag read inside
the component so exposure fires only for people who load the page, and a fallback
to control for any unresolved or blocked flag.

Generated-By: PostHog Desktop
Task-Id: 19fda4d2-2531-47fb-821d-31376b4e645f
@github-actions github-actions Bot added the website About the website (beyond just landing pages) label Aug 13, 2026
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Deploy preview

Status Details Updated (UTC)
🟢 Ready View preview Aug 13, 2026 11:04AM

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Vale prose linter → found 1 errors, 0 warnings, 0 suggestions in your markdown

Full report → Copy the linter results into an LLM to batch-fix issues.

Linter being weird? Update the rules!

src/components/ContextWarehouseCTA/README.md — 1 errors, 0 warnings, 0 suggestions
Line Severity Message Rule
6:21 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Bundle report

Total JS (gzip)

7.52 MiB (+0.4 KiB / +0.0%)

Eager graph (modules shipped in each entrypoint's initial chunks)

Entrypoint Eager size Budget Modules
app 16.86 MiB (no change) report-only 2018
Largest modules in the app closure
Module Size
./src/data/mcp-tools.json 989.7 KiB
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css 745.9 KiB
./src/components/Stickers/Stickers.tsx 696.4 KiB
./node_modules/.pnpm/@radix-ui+react-icons@1.3.2_react@18.3.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js 481.4 KiB
./node_modules/.pnpm/rehype-raw@7.0.0/node_modules/rehype-raw/lib/index.js + 29 modules 395.1 KiB
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.cjs.js 364.8 KiB
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js 354.8 KiB
./src/hooks/useCustomers.tsx + 54 modules 354.5 KiB
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules 351.4 KiB
./src/components/ProductComparisonTable/index.tsx + 126 modules 296.6 KiB
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js 281.9 KiB
./src/components/SearchUI/index.tsx + 87 modules 273.0 KiB
./node_modules/.pnpm/@posthog+brand@0.8.0_react@18.3.1/node_modules/@posthog/brand/dist/generated/hoggies/svg/magnifying-glass.mjs 254.7 KiB
./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/render/dom/motion.mjs + 109 modules 253.9 KiB
./node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js + 208 modules 247.4 KiB

Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes for the modules actually shipped in the entrypoint's initial chunks (post-tree-shake).

Three arms instead of two, so the test can separate "offering the terminal route"
from "removing the button":

- control: Get started only, as the page ships today
- install-with-ai: Get started plus an Install with AI button that reveals the
  command beside it, matching the pattern used elsewhere on the site
- wizard-command: the command replaces the button outright

Unknown or unresolved flag values still fall back to control, so the page never
renders without a CTA.

Generated-By: PostHog Desktop
Task-Id: 19fda4d2-2531-47fb-821d-31376b4e645f
@ivanagas ivanagas changed the title Add context-warehouse-cta experiment: Get started vs wizard command Add context-warehouse-cta experiment: Get started vs Install with AI vs wizard command Aug 13, 2026
The page's traffic can't power this test — detecting even a 50% relative lift in
warehouse sources connected would take ~11 weeks across three arms, and anything
subtler is out of reach — so the additive variant ships for everyone rather than
waiting on a result we can't get.

Drops the feature flag and the two other variants. No flag read means the CTA no
longer needs to be client-only, so RenderInClient and its placeholder go too.
Click tracking stays, so the split between the two routes is still visible.

Generated-By: PostHog Desktop
Task-Id: 19fda4d2-2531-47fb-821d-31376b4e645f
@ivanagas ivanagas changed the title Add context-warehouse-cta experiment: Get started vs Install with AI vs wizard command Add "Install with AI" alongside "Get started" on the context warehouse page Aug 13, 2026
@ivanagas
ivanagas requested a review from a team August 13, 2026 14:24
@ivanagas
ivanagas marked this pull request as ready for review August 13, 2026 14:24

Copy link
Copy Markdown
Contributor Author

Closing this in favour of an issue, per Should I open an issue or a PR? — this changes how the page behaves, so the website team should own the implementation. The idea now lives in #19675, which links back here as a reference.

@ivanagas ivanagas closed this Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

website About the website (beyond just landing pages)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant