Conversions were terrible. So I built a dead simple A/B test to see if the problem was the landing page design. Three variants, equal probability distribution, localStorage persistence.
The Setup
Instead of bikeshedding over design choices, I just shipped all three ideas and let the data decide. Math.random() assigns users to buckets. Nothing fancy.
Three Variants
Feed: The Original
Multi-card swipe interface. Think Instagram stories but with WebGL models. Touch events, momentum scrolling, the works.
Landing Page: Minimalist
Single page. One model (avocado toast), one CTA, done. Everything above the fold. Mobile-first because that's where the traffic is.
Post: Full Bleed
3D model as viewport background. Text overlay with backdrop-filter. Basically what happens when you let CSS do the heavy lifting.
Implementation
Dead simple: Math.random() < 0.33 ? 'feed' : Math.random() < 0.67 ? 'landing_page' : 'post'
Assignment goes in localStorage. Every click fires a gtag event with variant label and click location. That's it.
Test It Yourself
Debug page here: /test-variants.html
Force variants with URL params: ?variant=feed
, ?variant=landing_page
, ?variant=post
Next Steps
Running this for a few weeks until we hit statistical significance. Then deploying the winner to everyone.
Check it out: mukba.ng