Feature experiments

Run clean splits inside the release workflow.

Assign eligible users to stable variants, keep exposure logic next to the flag, and send the decision metadata to the analytics tools your team already uses.

Available now for assignment and exposure metadata. Statistical result analysis remains in your analytics stack.

FujiFlag running experiment editor with control and new-flow variants

Capabilities

Experiment mechanics without a second delivery system.

A FujiFlag experiment is an optional allocation layer on an environment-specific flag value—not a disconnected copy of your release configuration.

Multiple variants

Define a control and one or more alternative values with explicit traffic weights.

Stable assignment

Eligible subjects keep the same variant for an experiment version through deterministic assignment records.

Targeted eligibility

Use the flag's ordered context rules to decide who enters an experiment.

Lifecycle states

Prepare in draft, run, pause, or end an experiment with a clear operational status.

Exposure details

Read experiment key, variant, version, and evaluation reason for your analytics event.

Versioned changes

Material configuration changes create a new assignment version rather than silently reshuffling history.

Workflow

Keep assignment and measurement responsibilities clear.

FujiFlag decides the variant. Your analytics stack measures the metric. That boundary keeps the first implementation small and auditable.

01

Define eligibility

Use context targeting—or no rules for all callers—to establish who can enter the experiment.

02

Allocate variants

Choose values and weights, identify the control, and start the experiment when configuration is ready.

03

Track exposure

Send the returned variant and experiment version with the product event you already measure.

Built for implementation

Expose exactly what was assigned.

The React hook and JavaScript client both support detailed evaluation so instrumentation can stay close to the code that renders the experience.

  • Assignments are scoped by experiment, environment, version, and a hash of the targeting key.
  • Raw subject identifiers are not stored in experiment assignment records.
  • Callers outside eligibility—or without a targeting key—receive the configured fallback behavior.
  • Ordinary flag reads remain value-only when the application does not need exposure metadata.
TypeScript
const { value, detail } =
  await client.getFlagEvaluation('pricing-copy');

if (detail.reason === 'SPLIT') {
  analytics.track('experiment_exposure', {
    experiment: detail.experimentKey,
    variant: detail.variant,
    version: detail.experimentVersion,
  });
}

Start small. Ship safely.

Turn the next debate into a controlled test.

Add stable variants to a flag, instrument one meaningful metric, and learn without creating a separate delivery path.

No credit card required.