Article

2min read

How We Made AB Tasty’s Feature Experimentation SDK OpenFeature-Compatible — And Even Easier to Adopt

Why We Chose to Adopt OpenFeature

At AB Tasty, we believe a great product experience starts with smooth feature delivery and personalization. Our Feature Experimentation SDK empowers tech teams to control feature rollout and tailor interfaces to each visitor.

But in today’s complex, fast-moving ecosystems, interoperability is key. That’s where OpenFeature comes in.

What is OpenFeature?

OpenFeature is an open-source specification that defines a standardized API for feature flag management. It lets developers manage feature flags consistently across tools and platforms.

Why it matters:

  • Interoperability: A unified API across providers.
  • No vendor lock-in: Switch tools without rewriting business logic.
  • Thriving community: Backed by CNCF and designed for cloud-native development.

What We Built: The Official AB Tasty OpenFeature Provider

To ensure our SDK plays well with OpenFeature, we created an official provider:
@flagship.io/openfeature-provider-js

You can now use our feature flags in any OpenFeature-compliant setup, like this simple Node.js example:


JavaSvript
const express = require("express");
const { ABTastyProvider } = require("@flagship.io/openfeature-provider-js");
const { OpenFeature } = require("@openfeature/server-sdk");

const app = express();
app.use(express.json());

const provider = new ABTastyProvider("<ENV_ID>", "<API_KEY>");
await OpenFeature.setProviderAndWait(provider);

app.get("/item", async (req, res) => {
  const evaluationContext = {
    targetingKey: "visitor-id",
    fs_is_vip: true,
  };

  OpenFeature.setContext(evaluationContext);
  const client = OpenFeature.getClient();

  const fsEnableDiscount = await client.getBooleanValue("fs_enable_discount", false, evaluationContext);
  const fsAddToCartBtnColor = await client.getStringValue("fs_add_to_cart_btn_color", "blue", evaluationContext);

  res.json({
    product: {
      name: "AB Tasty Feature Experimentation T-shirt",
      price: 20,
      discountEnabled: fsEnableDiscount,
      btnColor: fsAddToCartBtnColor,
    },
  });
});

app.listen(3000, () => console.log("Server running on port 3000"));

Even Smarter: Our Built-In Codebase Analyzer

We’ve made onboarding even easier. Our CLI tool, which is also bundled with the AB Tasty VSCode Extension, includes a powerful codebase analyzer.

What it does:

  • Scans your codebase
  • Detects flags and usage from other providers (e.g., Optimizely, Kameleoon, etc.)
  • Identifies if you’re already using OpenFeature
  • Automatically generates corresponding flags in Flagship

Example: Already using OpenFeature with a competitor? Just plug in our CLI, and AB Tasty will detect your flags and preconfigure them for you — saving you hours of manual setup.

What This Means for You

By supporting OpenFeature, we offer:

  • Faster integration with your current stack
  • Greater flexibility in your feature flag strategy
  • Portability across cloud platforms
  • Alignment with open, modern dev practices

Quick Integration Guide

1. Install dependencies


Shell
npm install @openfeature/server-sdk
npm install @flagship.io/openfeature-provider-js

2. Initialize the provider


JavaScript
const { ABTastyProvider } = require("@flagship.io/openfeature-provider-js");
const { OpenFeature } = require("@openfeature/server-sdk");

const provider = new ABTastyProvider("<ENV_ID>", "<API_KEY>");
await OpenFeature.setProviderAndWait(provider);

3. Define the evaluation context


JavaScript
const evaluationContext = {
  targetingKey: "visitor-id",
  fs_is_vip: true,
};

OpenFeature.setContext(evaluationContext);

4. Evaluate your flags


JavaScript
const client = OpenFeature.getClient();

const fsEnableDiscount = await client.getBooleanValue(
  "fs_enable_discount",
  false,
  evaluationContext
);

const fsAddToCartBtnColor = await client.getStringValue(
  "fs_add_to_cart_btn_color",
  "blue",
  evaluationContext
);

Want to Learn More?

Check out these resources for more information about Feature Experimentation and OpenFeature.

Subscribe to
our Newsletter

bloc Newsletter EN

We will process and store your personal data to respond to send you communications as described in our  Privacy Policy.