Why We Chose to Adopt OpenFeature
At Wingify, 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 Wingify 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: "Wingify 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 Wingify 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 Wingify 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.
- Integration guide: Wingify Feature Experimentation x OpenFeature
- Signoz blog: What is OpenFeature
- LeadDev: Why OpenFeature is central to modern feature management
- Official OpenFeature spec






