Use Cases
Feature flags are more than on/off switches. See how teams use Flagit to ship faster and safer.
Progressive Rollouts
Ship to 1% of users, then scale up with confidence
Release new features gradually to catch issues before they affect all users. Start with internal testers, expand to beta users, then roll out to everyone.
Benefits
- Reduce risk of failed deployments
- Get real user feedback early
- Roll back instantly without redeploying
- A/B test new features against existing ones
// Roll out new checkout to 10% of users
if (isEnabled('new-checkout', { userId })) {
return <NewCheckout />;
}
return <LegacyCheckout />; Kill Switches
Instant off-switch for any feature
Wrap risky features in flags so you can disable them instantly if something goes wrong. No deployment needed - just toggle the flag.
Benefits
- Disable broken features in seconds
- Reduce MTTR (Mean Time To Recovery)
- No need for emergency deployments
- Sleep better knowing you have a safety net
// Disable payment processing if provider is down
if (!isEnabled('payments-enabled')) {
return showMaintenanceMessage();
}
return processPayment(order); Trunk-Based Development
Ship incomplete features behind flags
Merge code to main even when features aren't ready. Hide work-in-progress behind flags to keep your main branch deployable while developing large features.
Benefits
- Eliminate long-lived feature branches
- Reduce merge conflicts
- Deploy multiple times per day
- Enable continuous delivery
// Ship incomplete feature to main, hidden from users
if (isEnabled('new-dashboard-v2', { email })) {
// Only visible to internal team
return <DashboardV2 />;
}
return <Dashboard />; User Targeting
Different experiences for different users
Show features to specific users or groups based on attributes. Target by user ID, email domain, subscription plan, location, or any custom attribute.
Benefits
- Beta test with specific users
- Unlock features for premium customers
- Internal dogfooding before public release
- Geographic rollouts
// Show advanced analytics to Pro users
const context = {
userId: user.id,
plan: user.subscription.plan,
company: user.company.name,
};
if (isEnabled('advanced-analytics', context)) {
return <AdvancedAnalytics />;
} Dynamic Environments
Isolated flag configs for every branch
Automatically create flag environments for merge requests and preview deployments. Test features in isolation without affecting other environments.
Benefits
- Test flag configurations before merging
- Preview deployment support
- No flag conflicts between branches
- Automatic cleanup when MRs close
# .gitlab-ci.yml
deploy-preview:
script:
- flagit env create $CI_MERGE_REQUEST_IID
- deploy --env preview-$CI_MERGE_REQUEST_IID
environment:
name: preview/$CI_MERGE_REQUEST_IID
on_stop: cleanup-preview Scheduled Releases
Time-based feature activation
Schedule features to turn on or off at specific times. Perfect for product launches, promotions, or maintenance windows.
Benefits
- Launch features at specific times
- Run time-limited promotions
- Schedule maintenance mode
- Coordinate global releases across timezones
// Flag configured in dashboard:
// - Enable: Nov 29, 2024 00:00 UTC
// - Disable: Dec 2, 2024 00:00 UTC
if (isEnabled('black-friday-pricing')) {
return <SalePricing discount={0.30} />;
}
return <RegularPricing />; Ready to ship features faster?
Get started with Flagit in 5 minutes. Free for teams up to 5 users.