Getting Your Team Started with Feature Management

We understand the challenges of managing feature flags at scale, so we've built a platform that will help you get there. LaunchDarkly is developer-friendly and easy to integrate. Use our quick start guide to create a simple app in the language of your choice, and easily create and test a flag in your local dev environment.

Quick Setup Time

In just minutes you can set up and start to manage your first feature flag. Teams at organizations like GoPro and Atlassian have used LaunchDarkly to deliver code weeks faster and safely test in production.

Partial Implementation

Outcome driven development with feature flags is not all or nothing. Many of our customers start by using our feature management platform within in a single team before expanding to other teams/apps across their organizations.

Set up a feature flag in minutes

LaunchDarkly has been easy to on-board and integrate into our existing development cycle, which has helped us move faster with less risk.

Lawrence Yuan, VP Engineering, Ten-X

Implement LaunchDarkly in Minutes

See what a feature flag looks like in your stack.

Add the LaunchDarkly SDK to your project.

<dependency>
  <groupId>com.launchdarkly</groupId>
  <artifactId>launchdarkly-client</artifactId>
  <version>2.5.1</version>
</dependency>

Import the LaunchDarkly client in your application code.

import com.launchdarkly.client.*;

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

LDClient ldClient = new LDClient(YOUR_SDK_KEY);

Create a feature flag on your dashboard, then use your unique feature key in your application code.

LDUser user = new LDUser("user@test.com");
boolean showFeature = ldClient.boolVariation("your.feature.key", user, false);
if (showFeature) {
  // application code to show the feature
}
else {
  // the code to run if the feature is off
}

Include the LaunchDarkly SDK headers.

include "ldapi.h"

Create a new LDClient instance and user with your SDK key.

LDConfig *config = LDConfigNew("YOUR_CLIENT_SIDE_KEY");
LDUser *user = LDUserNew("YOUR_USER_KEY");
LDClient *client = LDClientInit(config, user);

In most cases, you should create a single LDClient instance for the lifecycle of your program (a singleton pattern can be helpful here). When finished with the client (or prior to program exit), you should close the client.

LDClientClose(client);

Create a feature flag on your dashboard. In your application code, use the feature's key to check whether the flag is on for each user.

show_feature = LDBoolVariation(client, "your.flag.key", false);
if (show_feature) {
    // application code to show the feature
} else {
    // the code to run if the feature is off
}

You'll also want to ensure that the client is initialized before checking the flag.

initialized = LDClientIsInitialized(client);

Add the LaunchDarkly SDK to your project.

Install-Package LaunchDarkly.Client

Import the LaunchDarkly client in your application code.

using LaunchDarkly.Client;

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

LdClient ldClient = new LdClient("YOUR_SDK_KEY");

Create a feature flag on your dashboard, then use your unique feature key in your application code.

User user = User.WithKey(username);
bool showFeature = ldClient.BoolVariation("your.feature.key", user, false);
if (showFeature) {
  // application code to show the feature
}
else {
  // the code to run if the feature is off
}

Use NuGet to add the Xamarin SDK to your project.

Install-Package LaunchDarkly.Xamarin

Import the LaunchDarkly package.

using LaunchDarkly.Xamarin;

Initialize the LDClient with your Mobile key and user.

User user = User.WithKey(username);
LdClient ldClient = LdClient.Init("YOUR_MOBILE_KEY", username);

Create a new feature flag on your dashboard. In your application code, use the feature's key to check whether the flag is on for each user.

bool showFeature = ldClient.BoolVariation("your.feature.key");
if (showFeature) {
  // application code to show the feature
}
else {
  // the code to run if the feature is off
}

Add the LaunchDarkly SDK to your project.

pip install ldclient-py

Import the LaunchDarkly client in your application code.

import ldclient

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

ldclient.set_sdk_key("YOUR_SDK_KEY")
ld_client = ldclient.get()

Create a feature flag on your dashboard, then use your unique feature key in your application code.

show_feature = ld_client.variation("your.flag.key", {"key": "user@test.com"}, False)
if show_feature:
    # application code to show the feature
else:
    # the code to run if the feature is off

Add the LaunchDarkly SDK to your project.

npm install ldclient-node --save

Import the LaunchDarkly client in your application code.

var LaunchDarkly = require('ldclient-node');

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

ldclient = LaunchDarkly.init(YOUR_SDK_KEY)

Create a feature flag on your dashboard, then use your unique feature key in your application code.

ldclient.once('ready', function() {
    ldclient.variation("your.flag.key", {"key": "user@test.com"}, false,
     function(err, showFeature) {
        if (showFeature) {
          // application code to show the feature
        } else {
          // the code to run if the feature is off
        }
     });
});

Add the LaunchDarkly SDK to your project.

gem install ldclient-rb --prerelease
# Note: The --prerelease flag is there to satisfy the dependency of celluloid 0.18pre which we have tested extensively and have found stable in our use case. Unfortunately, the upstream provider has not promoted this version to stable yet. See here, https://github.com/celluloid/celluloid/issues/762. This is not required for use in a Gemfile.

Import the LaunchDarkly client in your application code.

require 'ldclient-rb'

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

ld_client = LaunchDarkly::LDClient.new(YOUR_SDK_KEY)

Create a feature flag on your dashboard, then use your unique feature key in your application code.

show_feature = ld_client.variation("your.flag.key", {:key => "user@test.com"}, false)
if show_feature
    # application code to show the feature
else
    # the code to run if the feature is off

Add the LaunchDarkly SDK to your project.

go get gopkg.in/launchdarkly/go-client.v2

Import the LaunchDarkly client in your application code.

import ld "gopkg.in/launchdarkly/go-client.v2"

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

ld_client := ld.MakeClient(YOUR_SDK_KEY, 5*time.Second)

Create a feature flag on your dashboard, then use your unique feature key in your application code.

key := "user@test.com"
show_feature := ld_client.BoolVariation("your.flag.key", ld.User{Key: &key,}, false)
if (show_feature) {
    # application code to show the feature
} else {
    # the code to run if the feature is off
}

Add the LaunchDarkly SDK snippet to your pages.

<head>
    <script src="https://app.launchdarkly.com/snippet/ldclient.min.js"></script>
</head>

Configure the LaunchDarkly Client with your client-side id and initialize the client.

var user = {
  "key": "aa0ceb",
  "firstName": "Ernestina",
  "lastName": "Evans",
  "email": "ernestina@example.com",
  "custom": {
    "groups": ["Google", "Microsoft"]
  }
};
var ldclient = LDClient.initialize('YOUR_CLIENT_SIDE_ID_HERE', user);

Create a feature flag on your dashboard, then use your unique feature key in your application code.

var showFeature = ldclient.variation("YOUR-FLAG-KEY", false);
if (showFeature) {
  // Show "One Click Checkout" feature
} else {
  // the code to run if the feature is off
}

Add the LaunchDarkly SDK to your project.

php composer.phar require launchdarkly/launchdarkly-php

Import the LaunchDarkly client in your application code.

require 'vendor/autoload.php';

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

$client = new LaunchDarkly\LDClient(YOUR_SDK_KEY);

Create a feature flag on your dashboard, then use your unique feature key in your application code.

$user = new LaunchDarkly\LDUser("user@test.com");
if ($client->variation("your.flag.key", $user)) {
    # application code to show the feature
} else {
    # the code to run if the feature is off
}

Add the LaunchDarkly SDK to your project.

pod `LaunchDarkly`

Import the LaunchDarkly client in your application code.

#import "LDClient.h"

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

LDConfig *config = [[LDConfig alloc] initWithMobileKey: @"YOUR_MOBILE_KEY"];

Create a feature flag on your dashboard, then use your unique feature key in your application code.

LDUserBuilder *user = [[LDUserBuilder alloc] init];
user.key = @"aa0ceb";

[[LDClient sharedInstance] start:config withUserBuilder:user];

BOOL showFeature = [[LDClient sharedInstance] boolVariation:@"YOUR_FLAG_KEY" fallback:NO];
if (showFeature) {
        NSLog(@"Showing feature for %@", user.key);
} else {
        NSLog(@"Not showing feature for user %@", user.key);
}

Add the LaunchDarkly SDK to your project.

pod `LaunchDarkly`

Import the LaunchDarkly client in your application code.

#import "LDClient.h"

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

LDConfig *config = [[LDConfig alloc] initWithMobileKey: @"YOUR_MOBILE_KEY"];

Create a feature flag on your dashboard, then use your unique feature key in your application code.

LDUserBuilder *user = [[LDUserBuilder alloc] init];
user.key = @"aa0ceb";

[[LDClient sharedInstance] start:config withUserBuilder:user];

BOOL showFeature = [[LDClient sharedInstance] boolVariation:@"YOUR_FLAG_KEY" fallback:NO];
if (showFeature) {
        NSLog(@"Showing feature for %@", user.key);
} else {
        NSLog(@"Not showing feature for user %@", user.key);
}

Add the LaunchDarkly SDK to your project.

compile 'com.launchdarkly:launchdarkly-android-client:2.1.1'

Import the LaunchDarkly client in your application code.

import com.launchdarkly.android.LDClient;
import com.launchdarkly.android.LDConfig;
import com.launchdarkly.android.LDUser;

Configure the LaunchDarkly Client with your SDK or Mobile key and create the client.

LDConfig ldConfig = new LDConfig.Builder().setMobileKey("YOUR_MOBILE_KEY").build();

Create a feature flag on your dashboard, then use your unique feature key in your application code.

LDConfig ldConfig = new LDConfig.Builder()
        .setMobileKey("MOBILE_KEY")
        .build();

LDUser user = new LDUser.Builder("user key")
        .email("fake@example.com")
        .build();

LDClient client = LDClient.init(getApplication(), ldConfig, user, 5);

if (client.boolVariation(FLAG_KEY, false)) {
    Log.i(TAG, "Showing feature");
} else {
    Log.i(TAG, "Not Showing feature");
}

When we added LaunchDarkly to our stack, feature toggles quickly became easy and delightful to use. It's fundamentally changed the way we build, rollout and test features.

Scott Ringwelski, Co-founder and CTO, Handshake

Scalable to Benefit Your Team

Scale to your team, scale to your users.

Starting to feature flag is easy, managing them is hard. Managing multiple features across different environments is no easy feat—especially when you want to keep everyone in sync and compliant.

LaunchDarkly's feature management platform is built for teams. Organize work spaces with projects and environments. Support security requirements with team controls, including custom roles and multi-factor authentication. Get real time visibility into the full lifecycle of features with an audit log. And an intuitive dashboard that is easy for anyone in your organization to use.

Our feature management platform is also built for scale. Companies like Atlassian and Microsoft use LaunchDarkly to manage features in multiple products across their organizations. We serve over 40 billion features daily.

Ready to Get Your Hands on the Platform?

Start your free trial or talk to an expert.