Set up React Web SDK

Install and initialize the LaunchDarkly React Web SDK to start evaluating feature flags in your application.

Install the package

yarn add @launchdarkly/react-sdk

Initialize the SDK for feature management

React Web SDK initialization
// Add the code below to the root of your React app.
import { createRoot } from 'react-dom/client';
import { createLDReactProvider, LDContext } from '@launchdarkly/react-sdk';
function App() {
return <div>Let your feature flags fly!</div>
}
// A "context" is a data object representing users, devices, organizations, and other entities.
const context: LDContext = {
kind: 'user',
key: 'EXAMPLE_CONTEXT_KEY',
email: 'biz@face.dev',
};
// This is your client-side ID.
const LDReactProvider = createLDReactProvider('YOUR_CLIENT_SIDE_ID', context);
createRoot(document.getElementById('root') as HTMLElement).render(
<LDReactProvider>
<App />
</LDReactProvider>,
);

Initialize the SDK for feature management and Experimentation

If you want to use the LaunchDarkly Experimentation feature, include a track call in your initialization code:

React Web SDK initialization for Experimentation
// Add the code below to the root of your React app.
import { StrictMode, useCallback } from 'react';
import { createRoot } from 'react-dom/client';
import { createLDReactProvider, useLDClient } from '@launchdarkly/react-sdk';
function App() {
const ldClient = useLDClient();
// Call trackMetric when a metric action occurs in your app —
// a click, a form submit, a page view, a custom event, whatever your metric measures.
const trackMetric = useCallback(
(metricKey: string, data?: unknown) => {
ldClient?.track(metricKey, data);
},
[ldClient],
);
return <div>Let your feature flags fly!</div>;
}
// A "context" is a data object representing users, devices, organizations, and other entities.
const context = {
kind: 'user',
key: 'EXAMPLE_CONTEXT_KEY',
email: 'EXAMPLE_EMAIL',
};
// Initialize the SDK so flag values are ready before your app renders.
// This is your client-side ID.
const LDProvider = createLDReactProvider('YOUR_CLIENT_SIDE_ID', context);
createRoot(document.getElementById('root') as HTMLElement).render(
<StrictMode>
<LDProvider>
<App />
</LDProvider>
</StrictMode>,
);

You can find your server-side SDK keys, mobile keys, and client-side ID on the SDK keys page under Settings.

To learn more, read Initialize the client in the React Web SDK reference guide.