Use cases
Early access
Let customers opt in to new features before everyone else, and grow the programme into a full launch. Product and marketing decide which features it includes, and the application passes one attribute.
How it works#
- Your application records who joined, such as from a setting in their account, and passes it as a boolean attribute.
- A segment matches the members.
- Each feature in the programme gives that segment a rule of its own, ahead of the general rollout.
Testing in production is for your own testers. Early access is for customers who chose to try something new.
Record who joined#
Declare the attribute your application passes:
description: The user joined the early access programmetype: booleanSet it from the signed in user's profile, so members get the programme on every device:
const context = { userId: '8f2a', earlyAccess: userProfile.earlyAccess === true,}Group the members#
description: Users in the early access programmeconditions: - attribute: earlyAccess operator: equals value: trueGive them a feature first#
The wishlist goes to members before anyone else:
description: Add products to a wishlistbucketBy: userIdrules: - key: early-adopters conditions: earlyAdopters percentage: 100 - key: everyone conditions: '*' percentage: 0The first matching rule decides, so members get the wishlist and everyone else waits. Add the same rule to each feature you put in the programme. The segment is defined once, so the membership rule changes in one place for all of them.
A datafile in a browser shows this rule to anyone who looks, so treat a feature in the programme as announced.
Grow it into a launch#
When the feature is ready for more people, raise the everyone rule step by step, as Progressive delivery shows. Members keep the feature throughout. Once everyone reaches 100%, remove the early-adopters rule, since it no longer changes anything.
Let people leave#
A member who leaves the programme falls through to the everyone rule. They keep the feature only if their bucket is inside its percentage, so tell them they may lose access until the full launch.
Keep it apart from experiments#
Members chose to join, so they are not a fair sample of your users. Their feedback is valuable, but comparing their numbers with everyone else's does not show what the feature does. To measure that, run an experiment on users who did not choose.
Test it#
feature: wishlistassertions: - description: Members get the wishlist at: 90 context: earlyAccess: true expectedToBeEnabled: true - description: Everyone else waits at: 10 context: earlyAccess: false expectedToBeEnabled: falseRelated#
- Testing in production, for your own testers
- Progressive delivery, for widening the launch
- Segments

