Skip to main content

Everything you need to switch from Optimizely Classic to X in one place: See the Optimizely X Web Transition Guide.

Optimizely Knowledge Base

Introduction to Optimizely X Full Stack

Relevant Products:
  • Optimizely X Full Stack

  • Get started with Optimizely X Full Stack
  • Create experiments in the programming language of your choice, including: Python, Ruby, Java, Node, PHP, C#, and JavaScript
  • Create, test, and rollout features with Optimizely Feature Management
  • Run experiments anywhere in your technology stack, using one of Optimizely’s SDKs
  • Use Optimizely’s Stats Engine to measure the impact of your experiments

Optimizely X Full Stack helps you run Optimizely experiments in any application or on any connected device. It enables product and engineering teams to build, deploy, test, and rollout features anywhere in their technology stack, with server-side and client-side testing on a single experimentation platform.

Use Full Stack to develop and test areas like pricing, search result algorithms, or redesigns. A/B test across your technology stack or slowly roll out a new feature.

Full Stack 2.0 introduces a set of new capabilities collectively called Feature Management.  Feature Management is designed to make it easy for product development teams to build, deploy, and iterate on features.  Feature Management introduces several new concepts that you should become familiar with:

  • Features are the building blocks of your Full Stack experimentation program.  Develop a feature, deploy your feature using the isFeatureEnabled API (the equivalent of a feature flag), then create and launch experiments without deploying again.  Toggle your feature on/off for specific users by running feature tests and feature rollouts.

  • Feature Configurations allow you to define variables that parameterize your features.  You can set the value of the variables in your feature configuration as part of an experiment in order to iterate on your feature in between code deploys.  Use Optimizely’s getFeatureVariable APIs to access your feature configuration variable values in your application.

  • Feature Tests are A/B tests tailor made for features.  Feature tests allows you to test a new feature against your existing user experience, or to iterate on an feature by defining variations based on feature configurations.  (Note: Feature tests do not require using the activate API.  Instead, isFeatureEnabled does all the work for you.  When you call isFeatureEnabled, Optimizely checks for active feature tests, evaluates whether the current user is eligible for those tests, then activate the test if she is.)

  • Feature Rollouts are the output of your product development process.  When you’re ready to expose a new feature to your users, create a rollout, set a traffic allocation, and, if appropriate, target an audience.  Leverage feature rollouts to deploy the results of your tests to the right users, at the right time, with the appropriate safeguards in place.

Finally, we continue to support traditional A/B tests:

  • A/B Tests are one-off experiments designed to answer specific questions.  A/B tests use the activate API, which returns the variation key corresponding to the variation assigned to a particular user.  Leverage A/B tests to answer one-off questions while using feature tests to iterate on features over time.

Full Stack 2.0 introduces several other new conveniences, including: Environments, which allow you to map Optimizely to your development process; Notification Listeners, which allow you easily integrate Full Stack experiments with other services; and Bucketing IDs, which allow you to assign users to variations with an identifier other than the user’s ID (e.g. an Account ID).

To learn more about the new concepts introduced in Full Stack 2.0, see the following articles:

Full Stack includes SDKs that you can use to run experiments in different languages and in any application.  Selecting a language when creating a Full Stack SDK project allows us to show you appropriate code samples in the UI, and inform you of SDK updates. Otherwise, our Full Stack SDKs are language agnostic; meaning that you can use a datafile from any Full Stack project type to initialize an Optimizely client within your app, regardless of which language you've designated for your project.

To learn more or add Optimizely X Full Stack to your account, contact your Customer Success Manager.

See additional resources
Here are all our articles about the Optimizely dashboard, which you'll use to create projects, add collaborators, manage privacy settings, and more: 

Here's our developer documentation, where you'll find code samples, full references for our SDKs, and getting started guides.