For creators
Experiments — A/B test your portal
Run experiments on your hero CTA copy, course price display, and anywhere else you want to know what converts. Sticky per-visitor assignments, server-side fairness, conversion reporting.
Why bother
Most pricing + landing-page decisions are gut calls. They don't have to be. The Experiments module lets you split traffic across two or three variants of a piece of UI, measures who clicks / enrols / converts, and tells you which variant won — without you writing any code.
Who it's for
- Instructors who want to test 'urgent' vs 'aspirational' hero copy.
- Course creators wanting to A/B price-display formats (strikethrough first vs 'Save $X' chip vs current).
- Anyone who's ever wondered 'would more students enrol if I changed the button?' and not had a way to find out.
Pre-built vs custom
The Experiments admin lists pre-built cards for the surfaces we've already wired up (hero CTA copy, course price display). One click spins those up — variants + goal events are pre-filled, you just pick traffic split + activate. Behind the scenes it's the same engine you'd use for a custom experiment, just with the rendering already done.
Custom experiments are for surfaces your team has wired with useExperiment yourself. They're identical in mechanics — pre-built ones just skip the integration step.
How assignment works
- Each visitor gets a sticky id stored in localStorage on first hit.
- We hash (visitorId + experimentKey) to pick a variant. Same visitor + same experiment = same variant forever, even across sessions.
- Weights determine traffic split — equal weights mean 50/50, 1/9 means 10% to one variant and 90% to the other.
- An exposure event is logged the first time a visitor sees each variant. Conversion events are logged when they fire the goal action (e.g. 'enroll' or 'hero-cta-click').
Reading the report
Open the experiment from /dashboard/experiments to see exposures + conversions per variant, plus the conversion rate. We don't compute statistical significance for you — the rule of thumb is wait until each variant has at least 200–300 exposures before reading anything into the difference.
Example: hero CTA copy
Three variants are pre-wired: editor copy (whatever you typed in the page builder), 'Start free today' (urgent), 'Begin your journey' (aspirational). Goal event: hero-cta-click. Spin it up, send your normal traffic at it for a week, and you'll have an empirical answer to 'does urgency outperform aspiration on my audience?'.
Example: course price display
Three variants for the price chip: current (price + strikethrough + % off), anchor-first (strikethrough first, price below), savings ('Save $X' chip + price). Goal event: enroll. Pick which framing actually drives the cheque-out, not which one looks nicest in Figma.
Related