jenssegers/ab
Jenssegers/AB is a lightweight A/B testing package for Laravel that lets you define experiments, split traffic between variants, and track which version performs best. Simple to configure and easy to integrate into existing applications for data-driven decisions.
Architecture fit
jenssegers/ab occupies a narrow, application-layer seam in a Laravel codebase: define an experiment, resolve a variant for a visitor, persist that assignment, record a conversion. No queue workers, no external service, no infrastructure footprint beyond whatever storage it selects for sticky bucketing.Integration feasibility
config/app.php pre-5.5, auto-discovery from 5.5), optional config publishing, possibly a migration for the assignment/goal store. A competent Laravel developer gets a spike running in under a day.Technical risk
composer.json; do not assume.Key questions
Stack fit
Migration path
ExperimentService with variant(), track(), active()) so the package sits at the edge of a single adapter.Compatibility
composer update cannot silently move it.composer.json, not the release note. Confirm the PHP floor against our runtime.Sequencing
ExperimentService and the adapter with a contract test asserting "same visitor, same variant" across sessions, devices, and cache flushes. Nothing else merges until this is green.Maintenance
Support
Scaling
Failure modes
composer update moves the package or a transitive dependency and changes assignment behavior with no changelog entry.Ramp-up
Bottom line: A low-cost, low-blast-radius component that solves the cheap half of experimentation and none of the expensive half. Approve a bounded, version-pinned, adapter-wrapped trial on internal and non-revenue surfaces only; decline for anything a board deck will cite. The decision this actually forces is not "which A/B library" but "do we intend to run experiments on a recurring cadence at all" — answer that first, and the dependency question mostly answers itself.
How can I help you explore Laravel packages today?