Docs/Guides/

Beta Testing

Run beta programs with feature flags — no separate builds required

Feature flags let you run beta programs inside your production application. Instead of maintaining a separate beta build, you enable new features for a specific set of users while everyone else sees the existing experience.

Why use flags for beta testing?

Traditional betaFlag-based beta
Separate build/environmentSame production build
Manual enrollment processInstant add/remove via dashboard
All-or-nothing feature accessGranular per-feature control
Hard to scaleWorks at any scale
Delayed feedback loopReal-time control

Setting up a beta program

Step 1: Create a target list

  1. Go to Target Lists in the Flagpool dashboard
  2. Click New Target List
  3. Name it beta-testers
  4. Set the attribute to userId
  5. Add your beta users' IDs

Step 2: Create feature flags

Create a boolean flag for each beta feature:

  • beta-new-dashboard
  • beta-ai-assistant
  • beta-advanced-analytics

Step 3: Add targeting rules

For each beta flag, add a rule:

AttributeOperatorValueVariation
userIdinTargetListbeta-testers0 (enabled)

This ensures only users in the beta-testers list see the feature.

Step 4: Evaluate in code

if (client.isEnabled('beta-new-dashboard')) {
  showNewDashboard()
} else {
  showCurrentDashboard()
}
import { Feature } from '@flagpool/react'

function Dashboard() {
  return (
    <Feature flag="beta-new-dashboard" fallback={<CurrentDashboard />}>
      <NewDashboard />
    </Feature>
  )
}

Managing beta users

Adding users

Add user IDs to the beta-testers target list in the dashboard. The change takes effect on the next SDK poll cycle (within 30 seconds by default).

Removing users

Remove user IDs from the target list. The user will stop seeing beta features on their next session.

Self-service enrollment

You can also use context attributes for self-service beta enrollment. For example, if users can opt in to a beta program in your app:

  1. Store a betaOptIn: true attribute on the user
  2. Pass it in the context: { userId: '...', betaOptIn: true }
  3. Create a targeting rule: betaOptIn eq true → enabled

Combining with percentage rollouts

For larger beta programs, combine target lists with rollouts:

  1. Target list — always enable for specific VIP beta testers
  2. Rollout — additionally roll out to 5% of all users for broader testing

Since targeting rules take precedence over rollouts, your VIP testers always see the feature while a random 5% of other users also get access.

Graduating from beta

When a beta feature is ready for general release:

  1. Increase the rollout percentage to 100%
  2. Monitor metrics for a few days
  3. Remove the targeting rules and target list references
  4. Remove the flag check from code
  5. Archive the flag in the dashboard

Next steps

Start Managing Feature Flags Today

Join teams who trust Flagpool to deliver features safely and efficiently.

No credit card required • Cancel anytime