Introducing OLI: Cro Metrics’ Secret to Faster, More Efficient Experiment Creation

Have you ever wondered how Cro Metrics launches new website experiments so quickly and consistently? Meet our internal tool, Optimization Local Interface (OLI)—pronounced “olly.” OLI streamlines how our engineers create, test, and iterate on experiments, helping us deliver top-notch results for our clients as efficiently as possible.

OLI automates many of the tasks involved in building experiments. It compiles our code—including modern TypeScript and SCSS (CSS)—and bundles it for compatibility with a broad range of browsers. Thanks to OLI’s ability to inject locally hosted code directly into a live website, our developers can rapidly test changes and refine each experiment before pushing it to the final testing platform. This approach saves considerable time and effort, ensuring a faster turnaround for our clients.

Moreover, OLI connects with our other internal tools—such as Iris, our custom client dashboard—to prefill experiment details and automate tasks like creating and uploading experiments. This dramatically reduces the chance of human error while ensuring consistent, high-quality results. Although OLI isn’t currently available for direct client use, it remains a crucial behind-the-scenes resource that allows our team to focus on delivering what matters most: growth and success for your business through data-driven experimentation.


Frequently Asked Questions

How does OLI (and Cro Metrics) manage and use Project JavaScript (PJS)?

We manage Project JavaScript (PJS) through a custom compilation system integrated into OLI. We break down the code into individual “PJS modules,” each serving a distinct purpose—like reusable QA utilities, event/goal tracking, or tools for single-page applications. By bundling these modules, we can:

  • Reuse common functionality across multiple projects,

  • Include only the modules that make sense for each client,

  • Quickly iterate when modifications are needed.

Ensuring Code Safety and Quality

  1. Error Mitigation & Reporting: Each module is wrapped in error-handling code, so any issues are contained and swiftly resolved.

  2. Hash-Based Version Control: We store a hash of the last uploaded PJS code to prevent accidental overwrites and keep clear version histories.

  3. Code Reviews: All new modules go through a review process to ensure quality and minimize technical debt.

  4. Minification & Performance: We minimize file size before uploading, helping your pages run fast while retaining high functionality.


Why does OLI utilize shared code over variation code?

Many testing platforms allow a global “campaign-level” JavaScript block—often called shared code—that runs across all variations, including the control (v0). We place nearly all experiment logic in this shared block, then have each variation simply activate whichever parts it needs.

Benefits of Shared Code:

  1. Reduced Snippet Size

    • Because the majority of each experiment’s code overlaps between variations, keeping it in one place avoids duplication. If we placed code for each variation separately, we’d repeat large blocks unnecessarily—slowing performance and increasing complexity.

  2. Consistent Tracking in the Control

    • Often, we need identical event tracking or data collection in both the control and variations. Shared code makes it simpler to run these tasks everywhere, ensuring consistent data and streamlined testing.


How does OLI impact experiment performance?

OLI helps us optimize experiments by:

  • Eliminating Redundant Code: We use a modular approach (PJS) and shared code techniques to prevent bloated snippets.

  • Minifying JavaScript: We reduce file size, speeding up load times.

  • Maintaining Best Practices by Default: OLI’s boilerplates and automated workflows guide our team toward clean, efficient code.

Crucially, OLI adds no extra runtime overhead—it simply bundles and uploads our optimized code to the testing platform.


What testing platforms does OLI support?

OLI currently facilitates writing experiments for:

  • Optimizely

  • Convert

  • VWO

  • AB Tasty

  • Dynamic Yield

  • Adobe Target

  • Monetate

It also includes API integrations/automations with:

  • Optimizely

  • Convert

  • VWO

By automating much of the setup and deployment process, OLI reduces manual effort and potential errors, allowing us to deliver more reliable, high-performing tests in less time.


In summary, OLI is how Cro Metrics can rapidly develop, iterate, and deploy experiments. From managing modular JavaScript (PJS) safely and efficiently to utilizing shared code for performance gains, OLI helps our team focus on delivering real results—so you can see faster, more reliable improvements on your website.