Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ab Bundle Laravel Package

jm/ab-bundle

jm/ab-bundle is a Symfony bundle for running A/B tests directly in your PHP application. Define experiments and variants, assign visitors consistently, render versions in Twig, and track conversions to compare performance without relying on an external testing service.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for experimentation. This package does one narrow thing: pick a variant for a visitor and render the matching template. That's the smallest viable slice of an experimentation stack, so it's useful as a scoping artifact — it clarifies how much of "A/B testing" is actually template selection vs. targeting, bucketing, metrics, and analysis (which this does not provide).
  • Server-side vs. client-side testing. Variant selection happens in PHP before render, which supports a decision to test above-the-fold copy and layout without a JS vendor, without flicker/FOUC, and without shipping experiment code to the browser.
  • Growth/CRO roadmap sequencing. Enables headline, CTA, and pricing-copy variants per route with a low enough footprint that a growth team can own it without platform engineering.
  • Analytics ownership. The package assigns variants but does not instrument them. Adopting it forces an explicit decision on event schema, assignment logging, and how variant IDs map to conversion events — a decision that's usually deferred and later regretted.
  • Caching architecture. Because the variant is baked into server-rendered HTML, this surfaces the full-page/CDN cache question (variant leakage across users, Vary handling) early rather than after launch.

Important caveat for stack fit: this is a Symfony bundle, not a Laravel package. On a Laravel codebase the decision is not "install it" but "port the concept" — roughly a service provider, a variant resolver, and a template lookup.

When to Consider This Package

Consider it when:

  • The stack is Symfony and the need is genuinely template-only variants — no targeting rules, no statistical engine, no cross-service consistency.
  • You're willing to vendor or fork it and pin PHP/framework constraints yourself.
  • You want a reference design to copy rather than a dependency to trust.

Look elsewhere when:

  • Laravel. No native integration exists; the integration work exceeds the value.
  • You need assignment consistency across services or sessions. Sticky bucketing, user-level identity, and server-to-server consistency are not what this provides.
  • You need statistics. No significance testing, no guardrails, no sequential-testing corrections — you'd be shipping a coin flip and calling it a result.
  • You need feature flags, targeting, or staged rollouts. GrowthBook (self-hosted, open source), Unleash, LaunchDarkly, or Optimizely cover this properly.
  • Full-page caching is in play. Cached HTML with an embedded variant will leak variants across users unless you architect around it.
  • Consent and privacy apply. A/B testing is personalization-adjacent; a small unmaintained bundle will not help you with consent gating or regional requirements.

Signal check: 23 stars, 0 dependents, opportunity score 0.24. Treat as unmaintained until proven otherwise — no security review, no support path, likely stale dependency constraints.

How to Pitch It (Stakeholders)

To executives: "This is not an experimentation platform — it's a template switcher, and it's a Symfony component, not something we can drop into our Laravel app. I don't recommend adopting it. I do recommend a one-to-two day spike using it as a reference, because it's a cheap way to answer whether we need a real experimentation platform or just a few hundred lines of variant routing. If testing becomes a recurring growth motion, we should budget for GrowthBook or LaunchDarkly instead."

To engineering: "Low-risk reference implementation, high-risk dependency. We'd fork and pin it, or more likely reimplement the pattern natively — a variant resolver, a config map of route → variants, and a template lookup. Don't add it to composer.json as-is."

Bottom line: evaluate the pattern, not the package. Low opportunity score, low maintenance signal, wrong framework — monitor and move on unless the Symfony constraint turns out to matter.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib