Quickstart
Get up and running with Flagship in minutes.
1. Sign Up
Create your account at app.withflagship.com.
2. Install the SDK
Flagship is OpenFeature compatible. Install the OpenFeature SDK and the Flagship provider for your language.
sh
npm install @openfeature/server-sdk @flagship/openfeature-providersh
pip install flagship-openfeature-providersh
go get github.com/with-flagship/flagship-go-providerxml
<dependency>
<groupId>com.withflagship</groupId>
<artifactId>openfeature-provider</artifactId>
<version>LATEST</version>
</dependency>3. Initialize Flagship
Initialize the provider with your API Key found in Settings > API Keys.
typescript
import { OpenFeature } from '@openfeature/server-sdk';
import { FlagshipProvider } from '@flagship/openfeature-provider';
OpenFeature.setProvider(new FlagshipProvider({
apiKey: process.env.FLAGSHIP_API_KEY
}));python
from openfeature import api
from flagship_openfeature_provider import FlagshipProvider
import os
api.set_provider(FlagshipProvider(
sdk_key=os.environ.get("FLAGSHIP_SDK_KEY")
))go
import (
"os"
"github.com/open-feature/go-sdk/openfeature"
"github.com/with-flagship/flagship-go-provider"
)
func main() {
provider := flagship.NewProvider(os.Getenv("FLAGSHIP_SDK_KEY"))
openfeature.SetProvider(provider)
}java
import dev.openfeature.sdk.OpenFeatureAPI;
import com.withflagship.openfeature.FlagshipProvider;
FlagshipProvider provider = new FlagshipProvider(System.getenv("FLAGSHIP_SDK_KEY"));
OpenFeatureAPI.getInstance().setProvider(provider);4. Evaluate a Flag
Wrap your code in a flag check.
typescript
const client = OpenFeature.getClient();
const showNewCheckout = await client.getBooleanValue('new-checkout-flow', false);
if (showNewCheckout) {
return <NewCheckout />;
} else {
return <OldCheckout />;
}python
client = api.get_client()
show_new_checkout = client.get_boolean_value("new_checkout_flow", False)
if show_new_checkout:
return render_new_checkout()
else:
return render_legacy_checkout()go
client := openfeature.NewClient("app")
showNewCheckout, _ := client.BooleanValue(
context.Background(),
"new-checkout-flow",
false,
openfeature.NewEvaluationContext("", nil),
)
if showNewCheckout {
return renderNewCheckout()
} else {
return renderLegacyCheckout()
}java
Client client = OpenFeatureAPI.getInstance().getClient();
Boolean showNewCheckout = client.getBooleanValue("new-checkout-flow", false);
if (showNewCheckout) {
return renderNewCheckout();
} else {
return renderLegacyCheckout();
}