Introduction

Feature flags for developers who ship

Feature flags that get out of your way. Deploy gradually, test in production, roll back instantly.

import { FlipswitchWebProvider } from '@flipswitch-io/web-provider';
import { OpenFeature, useFlag } from '@openfeature/react-sdk';

const provider = new FlipswitchWebProvider({ apiKey: 'YOUR_API_KEY' });
await OpenFeature.setProviderAndWait(provider);

function Checkout() {
  const { value: newCheckout } = useFlag('new-checkout', false);
  return newCheckout ? <NewCheckout /> : <OldCheckout />;
}
import { FlipswitchServerProvider } from '@flipswitch-io/server-provider';
import { OpenFeature } from '@openfeature/server-sdk';

const provider = new FlipswitchServerProvider({ apiKey: 'YOUR_API_KEY' });
await OpenFeature.setProviderAndWait(provider);
const client = OpenFeature.getClient();

const newCheckout = await client.getBooleanValue('new-checkout', false, {
  targetingKey: 'user-123',
});
import io.flipswitch.FlipswitchProvider;
import dev.openfeature.sdk.OpenFeatureAPI;
import dev.openfeature.sdk.Client;

FlipswitchProvider provider = FlipswitchProvider.builder("YOUR_API_KEY").build();
OpenFeatureAPI.getInstance().setProviderAndWait(provider);
Client client = OpenFeatureAPI.getInstance().getClient();

boolean newCheckout = client.getBooleanValue("new-checkout", false);
return newCheckout ? newCheckout() : oldCheckout();
from flipswitch import FlipswitchProvider
from openfeature import api

provider = FlipswitchProvider(api_key="YOUR_API_KEY")
api.set_provider(provider)
client = api.get_client()

new_checkout = client.get_boolean_value("new-checkout", False)
return new_checkout_view() if new_checkout else old_checkout_view()
import (
    flipswitch "github.com/flipswitch-io/go-sdk"
    "github.com/open-feature/go-sdk/openfeature"
)

provider, _ := flipswitch.NewProvider("YOUR_API_KEY")
openfeature.SetProvider(provider)
client := openfeature.NewClient("my-app")

newCheckout, _ := client.BooleanValue(ctx, "new-checkout", false, openfeature.EvaluationContext{})
if newCheckout {
    return newCheckout()
}
return oldCheckout()

What You Get

  • Real-time updates - Toggle flags in the dashboard, see changes instantly via SSE
  • Gradual rollouts - Ship to 1% of users, then 10%, then everyone
  • Targeting rules - Show features to specific users, teams, or segments
  • OpenFeature native - Works with any OpenFeature SDK via OFREP

On this page