# Turn a beta on for chosen users

Make a user flag in the console, switch it on, give it to chosen people, a tag, a list or everyone, and show the feature only to them in your app.

A user flag turns one part of your app on for chosen people: a beta for your
most engaged users, a new screen for your own team first. You make it in the
console, choose who gets it, and your app shows the part only to them. This
guide gives Acme Analytics' new report editor to Priya Shah first.

> **Note:**
  A console role that can create user **Features**, and room in your plan for
  one more live flag. Giving a flag to people, tags or lists needs a plan with
  advanced targeting.

## 1. Open Features

[Open User features in the console](https://console.buildbase.app/dashboard/admin/users/features)

In the left rail choose **Users**, then **Features** under **Users**. **User
features** lists each flag with its **Status** and whether it is on for
everyone (**Allow all**).

![The User features page, with the Features menu item under Users highlighted as step 1 and the Create feature button as step 2, and All features below](/images/feature-flags/user-flags/list.webp)

## 2. Make the flag

Press **Create feature**. Fill **Name** (what your team reads), **Description**,
and **Feature ID**, the name your code checks, such as `beta-editor`. Press
**Create**.

![The Create new feature dialog: Name Beta editor, a description, and the Feature ID beta-editor highlighted as step 2](/images/feature-flags/user-flags/create.webp)

## 3. Switch it on

Open the flag. A new flag is off, and **Feature is not enabled** says so: press
**Enable** at the top. While it is off, it is off for everyone, whoever it
targets.

![The Beta editor flag, Disabled, with Feature is not enabled below and the Enable button highlighted as step 3](/images/feature-flags/user-flags/enable.webp)

## 4. Choose who gets it

Once it is on, four cards choose who gets it. Use any mix:

- **Tagged users**, with **Add user tags**: everyone with one of the tags.
- **Tagged audience**, with **Add audience tags**: every user whose linked
  [audience](/users/audience-and-lists) member has one of the tags.
- **Users by list**, with **Add user lists**: every member of a [user list](/users/lists).
- **Individual users**, with **Add users**: the people you pick.

![The flag's targeting cards: Tagged users with Add user tags and Tagged audience with Add audience tags highlighted as step 4, Users by list with Add user lists as step 5, and Individual users with Add users as step 6](/images/feature-flags/user-flags/targets.webp)

To pick people, press **Add users**, tick each one, press **Select**, then
**Add selected users**.

![The Add users to feature dialog: Priya Shah ticked, Select (1), and the Add selected users (1) button highlighted as step 6](/images/feature-flags/user-flags/add-users.webp)

## 5. Or give it to everyone

**Allow all users**, at the top, gives every user the flag at once. **Revoke
allow all** takes it back to the people, tags and lists above.

![The Allow all users dialog: Every user will get access to this feature immediately, with the Allow all users button highlighted as step 7](/images/feature-flags/user-flags/allow-all.webp)

## 6. Show the feature in your app

Wrap the part of your app in `WhenUserFeatureEnabled` with the **Feature ID**:

```tsx
import { WhenUserFeatureEnabled } from '@buildbase/sdk/react';

export function Reports() {
  return (
    <WhenUserFeatureEnabled slug="beta-editor">
      <NewReportEditor />
    </WhenUserFeatureEnabled>
  );
}
```

Everyone else sees nothing in its place. The other gates, and how to change
who gets a flag from your backend, are in the
[feature flags overview](/feature-flags/overview).

## 7. Check one person

Open the person under **Users**. Their **Features** card shows every flag on,
in green, for them.

![Priya Shah's Features card: Parts of your app you switch on or off per person. Green means on for this user, with the Beta editor badge highlighted as step 8](/images/feature-flags/user-flags/user-page.webp)

## 8. Roll it back

**Disable**, at the top of the flag, turns it off for everyone at once, and
**Enable** brings back the same people. To take it from one person, remove
them from **Individual users**.

![The flag's actions: Allow all users, and the Disable button highlighted as step 9](/images/feature-flags/user-flags/disable.webp)

## Check it works

Sign in to your app as a person you gave the flag to: the new part shows.
Sign in as someone else: it does not.

## Things to watch out for

- **A new flag is off.** Until you press **Enable** it is off for everyone, whatever it targets, and so is an archived one.
- **The Feature ID is fixed once the flag is on.** The console says "Cannot change feature ID once feature is enabled."; choose it before you switch the flag on.
- **Adding targets needs a plan with advanced targeting; removing them never does.** A plan without it can always take a flag back.
- **A change reaches a signed-in person on their next load.** It is not pushed to an open page.
- **Audience lists are targeted over the API only.** The console adds users, user tags and user lists; see [the overview](/feature-flags/overview#changing-who-gets-a-user-flag-from-your-backend).

## Next Steps

- [Workspace flags](/feature-flags/workspace-flags) - a feature per plan, per workspace, or chosen by workspace admins.
- [Feature flags overview](/feature-flags/overview) - every gate, and targeting from your backend.
- [Lists](/users/lists) - the groups a flag can target.
