One lab. Every experimentation path.
Compare browser, server, mobile, edge, and direct-API implementations. Make decisions, fire conversions, inspect payloads, and validate the complete path from visitor to results.
Configure it. See it change. Track it.
One complete workflow with the implementation code and debugging evidence beside it.
- 1ConfigureFlag and visitor
- 2ApplySee the change
- 3InspectCode and decision
- 4TrackVerify the event
checkout_experienceWhat do these controls mean?
- Visitor ID
- Keeps one person in a stable variation.
- Attribute
- Describes who is eligible for an audience.
- Rollout
- The percentage of visitors eligible for treatment.
Weekend carryall
A carryall made for everywhere.
const user = client.createUserContext('debug-visitor', { plan: 'pro' })
const decision = user.decide('checkout_experience')
if (decision.enabled) applyTreatment(decision.variables)
user.trackEvent('demo_purchase', { value: 99, currency: 'EUR' })Open the full SDK lab ↗Test the rollout across 100 visitors.
See whether bucketing behaves the way you expect before connecting a real project.
Know what is working.
These checks update as you move through the playground.
window.__OPTIPILOT_DEBUG__Human-readable here, machine-readable in the browser.Integration event demos
Fire an analytics event and watch the Optimizely event it becomes
Amplitude events into Optimizely Web
Fire an Amplitude event and watch the Optimizely custom event it becomes — the allowlist, the revenue conversion to integer cents, and the full push payload.
All integration demos
Every split-pane event demo in one place, with the payload each one produces.
Web
Visual changes and client-side events
Edge
Decisions before the origin or browser
Feature SDK
One implementation surface per official quickstart
JavaScript v6+
The current universal JavaScript SDK using user contexts, decide, and trackEvent.
React
Provider and hooks integration for reactive flag decisions in component trees.
Next.js SSR
A server-rendered decision made at the application origin with a stable visitor cookie.
JavaScript Browser v5
The pre-v6 browser-specific SDK, retained to demonstrate legacy implementations.
JavaScript Node v5
The pre-v6 Node-specific integration for existing server applications.
Python
Origin-side flag decisions for Django, Flask, FastAPI, workers, and data services.
Java
Strongly typed decisions for Spring, servlet, and JVM service architectures.
C# / .NET
Feature delivery and experimentation for ASP.NET and .NET services.
Go
Low-overhead decisions for Go APIs, services, and command-line workloads.
PHP
Server-side decisions for PHP applications and commerce platforms.
Ruby
Feature flags and experiments for Rails, Rack, jobs, and Ruby services.
Swift
Native Apple-platform decisions with datafile polling and event dispatch.
Android
Native Android feature delivery with lifecycle-aware configuration updates.
Flutter
Cross-platform mobile experimentation from a single Dart implementation.
React Native
React-style decisions in native mobile applications.
Integration
SDK-free and service-based delivery
Event API
Direct HTTP event ingestion for systems where installing an SDK is not possible.
Optimizely Agent
A local decision and tracking service for unsupported languages or centralized architecture.
GTM + GA4
Mirror decisions and conversions into Google Tag Manager’s dataLayer for GA4 routing.
Segment
Forward the same conversion and visitor identity to a Segment source.
PostHog
Capture experimentation conversions alongside product analytics and session replay.
Optimizely Data Platform
Use a shared customer identity and behavioral event stream for activation and audiences.