Skip to content

docs: update the a/b variations of three SEM landingpages - #8975

Merged
pubkey merged 1 commit into
masterfrom
sem-pages-ab-variant-update
Aug 18, 2026
Merged

docs: update the a/b variations of three SEM landingpages#8975
pubkey merged 1 commit into
masterfrom
sem-pages-ab-variant-update

Conversation

@pubkey

@pubkey pubkey commented Aug 18, 2026

Copy link
Copy Markdown
Owner

This PR contains:

Improved docs (SEM landingpage copy), plus a small correctness fix to how those pages pick which variation to render.

Describe the problem you have without this PR

Three SEM landingpages (gaidxdb1, gadxie2, galocal1) were each running an a/b test over three copy variations. Some of those variations have finished their run and are being retired, and each page needs a fresh challenger so it keeps testing more than one copy instead of collapsing to a single variation.

Retiring variation a also exposes two problems in the existing pages:

  1. The server render defaulted to a hardcoded 'a'. Page() used useState('a') and ?? variations.a. On a page where variation a is retired, that resolves to undefined and the page renders nothing on the server and on the first client render. Fixed by taking the first live key from Object.keys(variations), which is exactly what getSemVariation() already uses as its own fallback, so the two now agree.
  2. The metaTitle was copied from one variation's title. On gaidxdb1 and gadxie2 that variation is now retired, so the browser tab and the search-result title advertised copy the page no longer shows. Both were rewritten to match the copy that is still live.

What changed per page

Page Retired Still live Added
gaidxdb1 b a d
gadxie2 a, c b d
galocal1 a, c b d

Retired variations are commented out, not deleted, per the rules documented in getSemVariation(): a letter is never reused for different copy, so tracking events stay comparable over time. New variations take the next unused letter, which is d on all three pages since c is retired everywhere.

Todos

  • Tests
  • Documentation
  • Typings
  • Changelog

Verification

node_modules was not installed in this environment, so npm run check-types and npm run lint were not run. Note that the root tsconfig.json lists docs-src in both include and exclude, and exclude wins, so npm run check-types does not cover these files either way. Instead the three changed files were type-checked with a standalone tsc 5.7.2 under --strict, filtering the module-resolution errors caused by the missing dependencies. The same check was run against the unmodified originals as a control, and the changed files are clean at the same level as the originals.

🤖 Generated with Claude Code

https://claude.ai/code/session_013hkkM8BihS5Z2zKX1mjGuX


Generated by Claude Code

Retire the variations that lost their a/b test on gaidxdb1, gadxie2 and
galocal1, and give each page a new challenger variation so it keeps
testing more than one copy.

- gaidxdb1: retire variation 'b', add variation 'd'.
- gadxie2: retire variations 'a' and 'c', add variation 'd'.
- galocal1: retire variations 'a' and 'c', add variation 'd'.

Retired variations are commented out instead of deleted, so their letters
stay reserved and are never re-assigned to different copy. New variations
take the next unused letter, which is 'd' on all three pages.

Two follow-ups that come with retiring variation 'a':

- The server render can no longer default to a hardcoded 'a', because that
  variation is retired on gadxie2 and galocal1. The pages now take the
  first live key from Object.keys(variations), which is what
  getSemVariation() already uses as its own fallback.
- The metaTitle of gaidxdb1 and gadxie2 was taken from a variation that is
  now retired, so both were rewritten to match the copy the page still
  shows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013hkkM8BihS5Z2zKX1mjGuX
@pubkey
pubkey merged commit c4d40ca into master Aug 18, 2026
24 of 25 checks passed
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.

2 participants