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

Full Stack projects: Run tests anywhere in your tech stack

relevant products:
  • Optimizely X Full Stack

  • Understand the hierarchy of accounts, projects, and tests in Optimizely X Full Stack
  • Decide how to subdivide your account by primary language, native app, or for development and production environments

Projects are ways of creating workspaces for your Optimizely tests, including A/B tests and feature tests. A project is a subsection in your Optimizely account for tests built with Optimizely X Full Stack. In general, one project will represent a single application or service that you're developing in. For example, if you have two different mobile applications and one server-side application, you'll create three projects.

Full Stack projects allow you to test anywhere in your technology stack with Optimizely's SDKs. If your account includes Full Stack: 

  • Optimizely server-side SDKs: you can create projects in Python, Ruby, Java, Node, PHP, and JavaScript

  • Optimizely mobile SDKs: you can create projects for native iOS and Android apps

  • Optimizely OTT SDKs: you can create projects for native tvOS and Android-based TV apps

Each project has its own set of tests and collaborators. The hierarchy of experiment organization looks like this:


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.


When to create multiple projects

Sometimes, you'll want to test in multiple languages, on different applications, or on different devices. Optimizely can help you do this. Create separate Full Stack projects to run tests in different apps, languages, and environments.

For example, you might run tests on two different Python backend services, a Java backend, and a React Node application. You'd create four separate projects (two in Python, one in Java, and one in Node). By specifying a primary language, you help Optimizely provide language-specific code samples and keep you informed of SDK updates.

If you have separate production and QA environments, you’d likewise create separate projects to run tests in each.

Learn more about setting up a Full Stack project as a workspace for your tests.

Full Stack projects versus Optimizely X Web projects

If you're familiar with Optimizely X Web, Full Stack projects share many of the same concepts. Both include similar test configuration options, including variations, events, metrics, attributes, and audiences. They also share account management features such as collaborators, permissions, single sign-on, and two-factor authentication.

Here’s how Full Stack projects are different from Optimizely X Web projects:

  • For Full Stack projects, you specify a primary language for developing tests. This is the language of the application or service you're testing.

    Currently, you can create Full Stack projects in Python, Java, Ruby, Node, PHP, and JavaScript, as well as tests for native iOS and Android apps and for tvOS and Android-based TV apps.

  • Full Stack projects don’t include the Visual Editor. Full Stack projects are designed to allow you to run tests in any application or service you're developing. Use them to create tests as flags in the application code and launch them with the regular code deploy process instead of creating tests with a Visual Editor.

  • Full Stack projects include some additional features that aren’t currently available for Optimizely X Web projects, including webhooks, whitelisting, mutually exclusive experiments, datafile versioning, and more.