Managing experiments
The Experiments page shows every A/B test and feature experiment detected in your codebase.
What it detects
The scanner identifies experiment patterns from major providers:
- Optimizely —
getExperiment(),activate() - GrowthBook —
useGrowthBookFeatureValue(),getExperimentValue() - PostHog — experiment-related
abTest(),splitTest() - Statsig —
checkGate()with experiment names - LaunchDarkly —
variation()with experiment-like flag names - Split — Split SDK calls
- VWO — Visual Website Optimizer patterns
- Unleash — variant-based experiments
For each experiment, the scanner extracts: name, provider, variants (from arrays or if/else branches), hypothesis (from nearby comments), metric, and lifecycle status.
Experiment statuses
| Status | Meaning |
|---|---|
| Active | Currently running — code branches on this experiment |
| Concluded | Marked for cleanup (TODO/cleanup comments found nearby) |
| Unknown | Status couldn't be determined |
Cleaning up concluded experiments
Concluded experiments are tech debt. The branching code remains in the codebase even after a winner was chosen. The Experiments page flags these with a warning:
"N concluded experiments still in the codebase. These should be cleaned up — ship the winner and remove the branching code."
To clean up:
- Identify the winning variant from your experimentation platform
- Remove the experiment check and the losing variant's code path
- Keep only the winning behavior
- Remove the experiment configuration from your provider
In the feature guide
Each scanned feature's guide shows its experiments in the "Experiments & A/B tests" section of the reference tables. The guide's deep dives also note which user flows branch on experiments and what each variant does differently.