Experimentation Lab
Interactive implementation reference
Feature SDK implementation

JavaScript v6+

The current universal JavaScript SDK using user contexts, decide, and trackEvent.

Browser or Node.js

Live decision runner

Simulation mode
No credential is stored in this repo. Simulation is deterministic and clearly labeled. Add an environment SDK key to send real decisions and events; it stays in this browser’s local storage.

Implementation

Official docs ↗
npm install @optimizely/optimizely-sdk
import { createInstance } from '@optimizely/optimizely-sdk';

const client = createInstance({
  projectConfigManager: createPollingProjectConfigManager({ sdkKey }),
  eventProcessor: createBatchEventProcessor(),
});
await client.onReady();
const user = client.createUserContext('visitor-123', { plan: 'pro' });
const decision = await user.decideAsync('demo_flag');
user.trackEvent('demo_purchase', { revenue: 9900 });