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
}

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
}

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

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 20 billion features daily.

Ready to get your hands on the platform?

Start your free trial or talk to an expert.