Skip to main content
A/B Testing

Test variants at scale

Store experiment splits in config, not code

Define experiment variants and traffic splits in Replane. Product teams adjust percentages without engineering involvement.

The Problem & Solution

Before & after Replane

See how teams transform their workflow

Without Replane

  • Hardcoded experiment logic

    Traffic splits are buried in code. Changing percentages requires a deploy.

  • Inconsistent user experience

    Users see different variants on page refresh or across devices.

  • Slow iteration cycles

    Product teams wait for engineering to adjust splits. Experiments take weeks to tune.

  • No real-time adjustments

    Can't scale winners or pause losers quickly. Losing money while waiting for deploys.

With Replane

  • Config-driven experiments

    Define variants and percentages in Replane. Change splits without touching code.

  • Consistent hashing

    Users always see the same variant across sessions, devices, and page reloads.

  • Self-service for product

    Product teams adjust experiments directly. No engineering bottleneck.

  • Instant traffic shifts

    Scale winners to 100% or pause losers immediately. Changes apply in milliseconds.

Key Features

Data-driven decisions

Run experiments without engineering overhead

Consistent Assignment

Same variant across sessions for each user

Instant Traffic Shifts

Changes propagate in under a second

No Deploys

Adjust experiment splits without code

Unlimited Variants

Test as many variants as you need

How It Works

Three simple steps

Get up and running in minutes, not hours

1

Define variants

Create an experiment config with variant names and traffic percentages. No code changes required.

2

Assign consistently

Use our built-in hashing to ensure users see the same variant across sessions and devices.

3

Adjust in real-time

Shift traffic between variants instantly. Scale winners, pause losers—no deploy needed.

Benefits

Why teams choose Replane

Built for developers who value speed, reliability, and control

Consistent assignment

Built-in hashing ensures users see the same variant across sessions, devices, and page reloads.

Real-time traffic shifts

Adjust variant percentages instantly. No code changes, no deploys, no waiting.

Track everything

Full audit log of all changes. Know exactly when traffic splits changed for accurate analysis.

Code Examples

Works with your stack

Official SDKs for all major languages and frameworks

1import { Replane } from '@replanejs/sdk'
2
3interface Configs {
4 'checkout-experiment': 'control' | 'variant_a' | 'variant_b'
5}
6
7const replane = new Replane<Configs>()
8
9await replane.connect({
10 baseUrl: 'https://replane.example.com',
11 sdkKey: process.env.REPLANE_SDK_KEY
12})
13
14// Get variant for user (consistent across sessions)
15const variant = replane.get('checkout-experiment', {
16 context: { userId: user.id }
17})
18
19switch (variant) {
20 case 'control':
21 return renderClassicCheckout()
22 case 'variant_a':
23 return renderStreamlinedCheckout()
24 case 'variant_b':
25 return renderOneClickCheckout()
26}
27
28// Track conversion for analytics
29analytics.track('checkout_started', {
30 experiment: 'checkout-experiment',
31 variant,
32 userId: user.id
33})
FAQ

Questions about A/B Testing

Common questions and answers

Replane uses consistent hashing based on your context properties (like userId). The same user always gets the same variant, even across different sessions or devices. The hash is deterministic and stable.

Yes! Each experiment is a separate config. You can run as many concurrent experiments as you need. Just make sure to track which experiments each user is exposed to for accurate analysis.

Replane focuses on experiment assignment, not analytics. Track experiment exposure events in your analytics tool (Mixpanel, Amplitude, etc.) and analyze results there. This separation of concerns gives you maximum flexibility.

Changes propagate instantly via SSE. New users get assigned based on updated percentages. Existing users may get reassigned if their hash bucket changes—this is expected behavior when adjusting splits.

Yes! Use override rules to target specific segments. For example, show variant_a only to premium users, or exclude certain regions from an experiment entirely.

Get Started with A/B Testing

Ready to ship faster?

Start using Replane in minutes. Free forever for self-hosted, or let us manage everything for you.

No credit card required. MIT licensed. Deploy anywhere.