Field notes
Specific bugs from building and running client side experiments on real stacks, each one with the fix and the code that solved it. Less theory, more of what actually breaks a test in production.
-
// spa experimentation
Why your Optimizely experiment won't fire on SPA route changes
It activates on a hard load, then goes silent the moment a user navigates a single page app. The mechanism, and the route-aware activation pattern that fixes it.
-
// react inputs
Why your A/B test variation won't stick on a React input
You set the value and React wipes it on the next render, or onChange never fires. How to set a React controlled input so the app actually reacts.
-
// dom timing
Why your A/B test can't find the element (it rendered late)
The selector returns null because the target renders after your code. How to wait for it instead of guessing a timeout.
-
// performance
Stop your A/B test from tanking Core Web Vitals
Test code shifts layout and holds back paint, and CLS and LCP slide. How to apply a variation without wrecking the vitals or flashing the control.
-
// accessibility
Accessible A/B test variants: focus, ARIA, and screen readers
Variants often ship modals with no focus trap, controls with no name, and changes a screen reader never hears. How to build a variation that stays usable.
-
// flicker · fooc
Stop A/B test flicker without tanking Core Web Vitals
Hide the element, not the page. Why the default anti-flicker snippet wrecks your LCP, and the element-scoped fix that does not.
-
// exit intent
Exit intent that works on mobile, not just desktop
The mouseout trick fires on desktop and does nothing on a phone. How to detect leave intent across devices, fire it once, and keep it accessible.
-
// frequency capping
Frequency capping: show your popup once, not on every page
A popup with no memory shows on every page and becomes the reason people leave. How to cap it to once per session or per N days, with dismissals that stick.
-
// platform comparison
Optimizely vs VWO vs Convert for developers
A code-level, developer-lens comparison of the three platforms: how test code loads, SPA support, custom-code freedom, QA, and results.
-
// platform comparison
abtestly vs Convert: an honest comparison
How abtestly and Convert actually differ for a developer: pricing, edge delivery, code workflow, statistics, and where each one wins.