header-redesign flag with two variants, a rule that serves a variant to a test user, and code that resolves the flag.
The guide has these steps:
- Create a client for the website so that it can resolve flags.
- Create a flag for the header design, and define its schema.
- Create variants of the header.
- Use the flag in the website to control the header.
- Force a variant for a user to test a specific variant.
- Test resolving the flag with an evaluation context.
Before You Begin
- You need a Confidence account.
- For the AI path, set up Confidence for your AI assistant. The Flags MCP server creates clients, flags, variants, and rules. The Docs MCP server returns SDK code snippets.
Choose a Resolution Method That Fits Your Application
You can resolve a Confidence feature flag in two ways: by using Confidence’s managed resolver or hosting your own self-hosted resolver. Read more about the resolution options in the documentation.Create a Client
You must associate all feature flags with at least one client. A client can, for example, be a backend service or a website. Clients use flags to deliver different user experiences. To resolve flags, a client must authenticate with Confidence using client credentials.Confidence includes a default client that has the same name as your Confidence account. You can use this client, or create a more specific one for web feature flags in this quickstart.
- With AI
- In the App
listClients, createClient, and getClientSecret.Create a Flag
Flags let Confidence control the behavior of your application. For example, use a flag to control which machine learning model serves a recommendation, the number and size of tiles on a page, or a call to action message and its position on a sign-up page. For this tutorial, create a flag that controls the color and size of a header. The flag value has a schema. The value of a flag isn’t a single value, but a key-value map of properties. To avoid errors and make flags easier to work with, Confidence requires you to define a schema for the flag value. The schema describes the shape of the flag value by defining properties and their data types. In this guide, your flag controls the design of a header on a website. The design consists of color and size, so your flag needs two properties:color and size.
- With AI
- In the App
createFlag, which sets the client and schema in one call.header-redesign flag. Limiting which flags are available to which
clients is valuable for several reasons. For example, it prevents exposing flags to clients that run in
uncontrolled environments such as mobile apps or server-side web apps. It also saves resources when resolving flags
in batch (for example, at app start) by restricting resolution to only the relevant flags.
Now that you defined the schema, you can create variants that have specific
values for the color and size properties.
Create Variants
The two variants for the header redesign are black with size 14, and blue with size 16.- With AI
- In the App
addFlagVariant.Use the Flag
When resolving a flag into a value, you specify a default value. This default value applies if a user doesn’t match or isn’t assigned by a rule. The following sections show how to integrate the Confidence SDKs and set the default value for theheader-redesign flag to color green and size 10.
To have your AI assistant write the integration code for your stack, ask it:
getCodeSnippetAndSdkIntegrationTips. To write the code yourself, follow the next sections.
Install Dependencies
You first need to install the necessary dependencies.Initialize Confidence
With dependencies installed, you can now create a Confidence provider for your platform and connect it to the OpenFeature SDK. You only need to do this once, preferably on app startup.Access the Flag
You can access the flag and its values using dot notation for nested properties.user_id and the plan this user is on,
in this case premium.
You can use the plan field in the context to create targeted rules. For example, with this
information in the evaluation context, an A/B test can include only users on the premium plan as
its target audience.
This video gives a quick overview how targeting and evaluation contexts work in 2 minutes and 10 seconds.
If you were to run the code above you would only get the default values for the
flag. Nothing tells the client that it should return any other
value. To do so, you need to create flag variants and a rule that returns a variant.
Force a Variant For a User
To try out a variant, you can force it for a user with a specific user ID. You do this by creating an individual targeting rule on the flag. Individual targeting rules let you target specific attribute values, such as a list of user IDs. For example, you can add the identifiers of your team members so only your team can test the new experience in its early stages.- With AI
- In the App
addOverrideRule.Force all Variant For 50% of Employees
You can create a conditional targeting rule with a targeting audience that includes a subset of the users in that audience. For example, you can create a conditional targeting rule that targets 50% of the users in the"plan": "employee" audience. This way, provided
that all employees have their plan set to employee, you can test the new experience
on a subset of your colleagues.
- With AI
- In the App
addTargetingRule.user-test-id is eligible for the
individual targeting rule, Confidence evaluates eligibility for the second rule for everyone
else. The second rule, in turn, only targets users on the employee plan.
Change the priority of the rules by dragging the rule cards
into the desired order and clicking save.
Test Flag Resolution
Test that the rule you expect returns a variant. You give an evaluation context and see which variant the flag resolves to.- With AI
- In the App
resolveFlag. Expect the new-style variant.See resolves for <flagName> in Confidence:To share a specific test run with someone, copy the URL and send it as a link. The link directs them to the Resolve tester with all context data preserved.
Related Resources
Create a Metric
Set up a metric to measure the impact of your flags
Launch a Rollout
Gradually release your feature to users
Launch an A/B Test
Run an experiment to compare variants
Flags Reference
Deep dive into feature flag concepts and configuration

