new_dashboard, welcome_message, and checkout_experiment. You’ll see them again in Getting started and in every SDK guide.
The mental model
An environment is the container everything else attaches to. Flags get attached to an environment; each environment has exactly one SDK key; your app uses that key to evaluate flags at runtime.Core concepts
Three steps to a live flag
1
Provision an environment
Create an environment and copy its SDK key immediately — it’s only shown once. Then attach the flags this environment should evaluate (start with the seeded
new_dashboard, welcome_message, and checkout_experiment if you’re just testing the waters).Full walkthrough: Getting started.2
Integrate an SDK
Install and initialize the SDK that matches your runtime — Node.js and NestJS for backend services, Browser or React for client-side apps, Next.js if you need both, or Direct HTTP for anything else. Every SDK is initialized with the environment’s SDK key.
3
Evaluate a flag
Call
isEnabled() (server/browser SDKs) or useFeatureFlag() (React) with the exact flag key. Flag keys are case-sensitive and must match the dashboard exactly — new_dashboard, not New_Dashboard or newDashboard.Try it
Here’s the same flag,new_dashboard, evaluated from a backend service and from a React component. Package names and setup are covered in each SDK’s own guide — this is just the shape of the call.
If
isEnabled() returns a default value instead of the value you set in the dashboard, double-check the flag is attached to the environment behind your SDK key — see Admin workflow.Continue setup
Getting started
Create an environment, save the SDK key, and ship a first flag end to end.
Admin workflow
Manage flags, targeting rules, rollouts, and what to do if an SDK key leaks.

