Skip to content

docs: A/B test nav CTA copy (Comfy Cloud vs Try Cloud for free) - #1503

Draft
comfyui-wiki wants to merge 4 commits into
mainfrom
docs/nav-cta-ab-test-try-cloud-free
Draft

docs: A/B test nav CTA copy (Comfy Cloud vs Try Cloud for free)#1503
comfyui-wiki wants to merge 4 commits into
mainfrom
docs/nav-cta-ab-test-try-cloud-free

Conversation

@comfyui-wiki

@comfyui-wiki comfyui-wiki commented Aug 26, 2026

Copy link
Copy Markdown
Member

What & why

Requested in #website-and-docs (thread): test whether homepage-style copy on the docs navbar CTA drives more clicks and signups.

PostHog data from the thread: the docs CTA ("Comfy Cloud" → comfy.org/cloud?utm_source=docs) gets ~1.2% click rate (7,637 clicks from 6,294 people against 540k unique visitors, 30d), but 27% of clickers create an account. The funnel suggests people aren't clicking because the CTA doesn't read as an offer, not because the destination fails.

What changed

nav-cta-ab-test.js (repo root; Mintlify inlines every root-level .js file on all pages, same mechanism as syft.js):

Self-contained variant assignment (no PostHog feature flag), per the thread discussion with Christian (inline Math.random() option) and given that docs' PostHog runs through Mintlify's proxy with an unverified flag-evaluation path:

  • Each visitor is randomly assigned control ("Comfy Cloud") or test ("Try Cloud for free"), 50/50.
  • The assignment is sticky per browser via localStorage, so the label does not flip between page loads (the naive inline version would re-randomize on every page).
  • Events for analysis:
    • docs_nav_cta_exposure {variant, label} — once per page load
    • docs_nav_cta_clicked {variant, label, href} — on every CTA click (captures the actually-assigned variant)
  • The href is identical in both variants to isolate the copy variable.
  • A MutationObserver re-applies the label when the SPA re-renders the navbar; storage-blocked browsers fall back to a per-load random draw.

Trade-off (deliberate)

This does NOT use the PostHog experiment (#448700, flag docs-cta-copy, left in draft and unused): no experiment dashboard readout (significance testing, guardrails), no dashboard kill switch, and signup attribution is manual (join docs_nav_cta_* events to $signup by person). Analysis is done by filtering the two events above by variant. This keeps the hook ~100 lines, removes the flag-launch step and the proxy dependency, and the test is live immediately after deploy.

How to launch

Merge this PR → Mintlify deploys → the test is live. No PostHog dashboard step needed.

Verification

Tested in a real browser against the live rendered nav DOM (desktop #topbar-cta-button link + mobile nav link), with a mocked PostHog and controlled Math.random():

  • test arm swaps both labels to "Try Cloud for free"; control arm keeps "Comfy Cloud".
  • Sticky: reload with a different random draw keeps the stored variant.
  • docs_nav_cta_exposure fires with the assigned variant; docs_nav_cta_clicked carries {variant, label, href}.
  • Labels re-apply to late-rendered links (SPA navigation).

@mintlify

mintlify Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
comfy 🟢 Ready View Preview Aug 26, 2026, 2:18 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@comfyui-wiki comfyui-wiki changed the title docs: A/B test nav CTA copy (Comfy Cloud → Try Cloud Free) docs: A/B test nav CTA copy (Comfy Cloud vs Try Cloud for free) Aug 26, 2026
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