Skip to content

SDK Overview

Featureflip provides server-side and client-side SDKs. Pick the one that matches where your code runs.

Are you evaluating flags in a backend service (Node.js, Python, C#, Java, Go, PHP, Ruby)? → Use a server-side SDK.

Are you evaluating flags in a browser or frontend app? → Using React? Use the React SDK. → Any other framework (or no framework)? Use the JavaScript / TypeScript SDK.

Are you evaluating flags in a mobile app? → iOS / macOS / tvOS / watchOS? Use the Swift SDK. → Flutter? Use the Flutter SDK. → Android? Use the Android SDK.

Server-sideClient-side
Use caseBackend services, APIs, server-rendered pagesBrowser apps, SPAs, frontend frameworks
SDK keyServer SDK key — keep secret, never expose to usersClient SDK key — safe to embed in frontend code
Flag visibilityAll flags in the projectOnly flags marked Client-side visible
Evaluation contextMulti-user — pass a different context per evaluation callSingle-user — set context once, call identify() on login
Real-time updatesSSE streaming or pollingSSE streaming
SecurityKey stays on your serverKey is public by design — only exposes client-visible flag values

Server-side and client-side SDKs use different keys. You can find both in your project settings.

  • Server SDK keys have access to all flags and should never be included in client-side bundles.
  • Client SDK keys only return flags explicitly marked as “Client-side visible” in the dashboard. They are safe to ship in browser code.
Terminal window
npm install @featureflip/browser-sdk
import { FeatureflipClient } from '@featureflip/browser-sdk';
const client = FeatureflipClient.get({
clientKey: 'your-client-sdk-key',
});
await client.initialize();
const showBanner = client.boolVariation('show-banner', false);

See the full JavaScript / TypeScript SDK reference.

Terminal window
npm install @featureflip/react-sdk @featureflip/browser-sdk
import { FeatureflipProvider, useFeatureFlag } from '@featureflip/react-sdk';
function App() {
return (
<FeatureflipProvider clientKey="your-client-sdk-key">
<Banner />
</FeatureflipProvider>
);
}
function Banner() {
const showBanner = useFeatureFlag('show-banner', false);
if (!showBanner) return null;
return <div>New feature available!</div>;
}

See the full React SDK reference.

In Xcode: File → Add Package Dependencies, then enter the repository URL.

import Featureflip
let config = FeatureflipConfig(clientKey: "your-client-sdk-key")
let client = FeatureflipClient(config: config)
await client.initialize()
let showBanner = client.boolVariation("show-banner", default: false)

See the full Swift SDK reference.

dependencies {
implementation("io.featureflip:featureflip-android:1.0.0")
}
import io.featureflip.android.FeatureflipClient
import io.featureflip.android.FeatureflipConfig
val config = FeatureflipConfig(clientKey = "your-client-sdk-key")
val client = FeatureflipClient.create(config)
client.initialize()
val showBanner = client.boolVariation("show-banner", false)

See the full Android SDK reference.

These SDKs use server SDK keys and are intended for backends or other controlled environments.