Get started with three building blocks, set up in order: an environment to deploy into, an application that owns the flag, and the flag itself. Once those are in place, configure the flag for each environment. Future flags reuse the same environments and applications.
An environment is a deployment stage — dev, staging, production, or any custom stage you name. Every flag gets an independent configuration per environment, so it can be on in dev and off in production until you're ready. Kill switches and approval policy are scoped to a specific environment too, and a Management Key can optionally be pinned to one.
In the dashboard: Configure → Environments → New. Leave All flags on for stages every flag goes through; turn it off for stages only some flags use, and add them per flag.
An application is the logical service or codebase the flag belongs to (e.g. checkout-api, web-frontend). Evaluation keys must be scoped to a single application (and may be narrowed further to one environment), and kill switches are issued per (application, environment) pair, so keeping applications aligned with your real deployables keeps evaluation traffic — and blast radius — cleanly isolated.
In the dashboard: Configure → Applications → New.
A feature flag is the named switch your code checks at runtime — flags.evaluate("checkout-v2", user) — that decides whether code runs and which variant a user sees. It carries a type (release, experiment, or ops/kill-switch) and is created once, then configured separately per environment.
In the dashboard: Feature Flags → New. Pick a template — Boolean Release is the simplest — name it (e.g. new-checkout) and save.
Configure your flag
Configuration is where a flag becomes real for one environment: turn it on or off, add targeting rules and rollout percentages, require admin approval before changes go live, or wire it to a kill switch for incident response. Each environment keeps its own configuration, so editing production never touches dev.
In the dashboard: open the flag → pick the environment tab → edit rules and save. If a tab is missing or shouldn't be there, use Manage environments next to the tabs to add or remove environments for that flag.
Generate an evaluation-enabled key at Develop → Management Keys (shown once — store it in your secret manager), then call the flag from your code. Install an SDK library, copy an HTTP example for your language, or curl it directly:
curl -X POST https://api.example.com/flags/new-checkout \
-H "x-management-key: $YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"userId":"user-42","stage":"dev"}'