Repository navigation
Conversation
Hero CTA island reads the homepage-cta-text flag (50% rollout plus a control force rule, preview only). Assignment uses an in-memory crypto.randomUUID id with the SDK payload cache disabled, so nothing is written to cookies or storage. Exposure and CTA click events go to Plausible once per page view with experiment and variant props.
Deploying website with
|
| Latest commit: |
45aa6bb
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://2080ffae.website-aun.pages.dev |
| Branch Preview URL: | https://feat-homepage-cta-experiment.website-aun.pages.dev |
Replace the CTA text test with an A/B test of the hero description. The control keeps the current two paragraphs; the treatment uses the new member-driven copy. Assignment stays per request on the server and nothing is stored. The CTA reverts to "Apply to the Incubator" and its clicks remain the conversion event.
Events become "Homepage Description Shown" / "Homepage Description CTA Click" and variants become A / B.
Resolve the hero conflict with #594: keep its two hero cards and track clicks on both, tagged cta=membership / cta=incubator.
Layout prerenders / from every page and prerendered pages run their scripts, so the exposure event now waits for prerenderingchange. Middle-clicks on the hero cards now count as clicks. Tracking takes an injectable tracker and document so it is unit tested. Drop the GrowthBook localStorage polyfill: the test no longer uses GrowthBook, the homepage still writes localStorage elsewhere, and the polyfill cost a CDN fetch on every page load.
Replace the two hero cards with a primary "Become a Member" pill and an outlined "Apply to the Incubator" pill. Click tracking is unchanged.
Open-role buttons and the open-roles error/empty fallbacks linked to the Formbricks volunteer survey. They now all go to /membership. Remove the unused survey URL, /volunteer-form constant and role link builder.
The hero buttons now read as one line of text with the action in bold: "Join the community, build projects, and start your own through T4P: Become a Member" and "If you run your own pro-Palestine project, and want help scaling: Apply to the Incubator". Click tracking is unchanged.
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.
Summary
index.astro(Math.random() < 0.5,src/utils/homepageExperiment.ts) and rendered straight into the HTML. No flicker, no third-party fetch for the experiment, and no JS needed to see either version.experiment: homepage-descriptionandvariant: A|Bprops:Homepage Description Shown: once per page view.Homepage Description CTA Click: at most once per page view, when either hero button ("Become a Member" or "Apply to the Incubator") is clicked, withcta: membershiporcta: incubator. Membership clicks are the primary metric; incubator clicks show whether B pulls people away from the incubator./now sendsCache-Control: no-store, otherwise everyone in the 10-minute cache window would get the same variant.homepage-cta-textflag in GrowthBook is unused and can be archived./from every page, and prerendered pages run their scripts. The exposure event therefore waits forprerenderingchange, so only page views the visitor actually sees are counted.Before going live
Cache-Control: no-storefrom/when the test endsHomepage Description ShownandHomepage Description CTA Clickas custom event goals in Plausibleexperiment,variantandctaare registered as custom properties in PlausibleExperiment Exposure/CTA Clickgoals (test data only)Reading results
Filter on
experiment = homepage-description, break down byvariant, and compare click events / shown events per variant (not visitors: one visitor can see both variants).Test plan
pnpm lint && pnpm check && pnpm test/api/pipeshown event, at most one click event with the rightcta, all withexperimentandvariant/showCache-Control: no-storeand the variant differs across requests (not cached at the edge)/about, don't visit/, and confirm no shown event is sent (prerender gating)/now that it isn't cacheableAlso in this PR: volunteer form links → membership
/volunteer, every open role's button is now "Become a member" →/membership(project roles used to link to the Formbricks volunteer survey)./membershipinstead of/volunteer-form./volunteer-formconstant and role-link builder, plus their tests. No Formbricks URL remains in the repo./volunteer-formredirect (Cloudflare dashboard) still points at Formbricks; update it to/membership