Documentation
Learn how to use Easy Flags feature flag management system
🚀 Getting Started
Welcome to Easy Flags! This guide will help you set up feature flags in your application. Feature flags allow you to control which features are visible to your users, enabling safe rollouts, A/B testing, and gradual deployments.
Whether you're a developer integrating feature flags or a manager controlling feature visibility, this documentation covers everything you need to know.
Understanding the Hierarchy:
📦 Spaces = Organizations/Projects
Think of a Space as a company, team, or product. Examples: "Acme Corp", "Mobile App", "E-commerce Platform"
🌍 Environments = Deployment Stages
Each Space contains environments where you control features. Standard environments: Production, Staging, Development
⚙️ Features = Feature Flags
Features are configured independently per environment. You can enable "new_dashboard" in Staging but keep it disabled in Production.
Example Structure:
📦 Space: "Acme Corp"
├─ 🌍 Environment: Production
│ ├─ ⚙️ Feature: new_dashboard (enabled: 100%)
│ └─ ⚙️ Feature: dark_mode (enabled: 50%)
├─ 🌍 Environment: Staging
│ ├─ ⚙️ Feature: new_dashboard (enabled: 100%)
│ └─ ⚙️ Feature: dark_mode (enabled: 100%)
└─ 🌍 Environment: Development
├─ ⚙️ Feature: new_dashboard (enabled: 100%)
└─ ⚙️ Feature: dark_mode (enabled: 100%)
Creating and Managing Spaces
A Space represents your organization, company, or project. It's the top-level container for all your feature flags. All features, environments, and team members belong to a space.
Space Examples:
- ✓ "Acme Corporation" - main company product
- ✓ "Mobile App" - iOS/Android application
- ✓ "E-commerce Platform" - online store
- ✓ "Internal Tools" - employee-facing applications
- ✗ NOT "Production", "Staging", "Development" (those are environments)
To Create a Space:
- Navigate to the Spaces section from the main menu
- Click the "Create New Space" button
- Enter a descriptive Space Name (e.g., "Acme Corp", "Mobile App")
- Add an optional Description to help your team understand the space's purpose
- Click "Create" to finalize
Managing Your Space:
- • Environments: Add production, staging, development environments to your space
- • Features: Create feature flags and control them per environment
- • Invite Members: Add team members and assign roles (Admin, Editor, Viewer)
- • Settings: Configure space-level preferences and integrations
- • Delete: Remove the space (careful - this is permanent!)
Creating and Managing Features
Features are the core of Easy Flags. Each feature is a flag that you can toggle on or off in different environments, and can be targeted to specific user segments.
To Create a Feature:
- From your space, navigate to the Features tab
- Click "Create Feature"
- Enter a unique Feature Key (e.g., "new_dashboard", "beta_analytics") - this is what you'll reference in your code
- Add a human-readable Display Name for your team
- Write a Description explaining what this feature does
-
Choose the Feature Type:
- • Boolean - Simple on/off toggle
- • String - Configuration value
- • JSON - Complex configuration object
- Click "Create"
Managing Feature Visibility:
Once created, you can control feature visibility through:
- • Toggle by Environment: Enable/disable per environment (Dev, Staging, Production)
- • Percentage Rollout: Release to a percentage of users (0-100%)
- • User Targeting: Show feature to specific users or user segments
- • Scheduling: Set start and end dates for feature availability
- • Default Value: Set fallback value when flag isn't explicitly set
Best Practices:
- ✓ Use descriptive, kebab-case feature keys (e.g., "dark_mode_enabled")
- ✓ Always include a clear description of the feature's purpose
- ✓ Start with a low percentage rollout before going to 100%
- ✓ Set deadlines for temporary features
- ✓ Clean up old/unused flags regularly
Working with Environments
Environments allow you to have different feature flag configurations for different stages of your application (Development, Staging, Production, etc.).
Default Environments:
- • Development: Local development environment - enable experimental features here
- • Staging: Pre-production testing - verify features before production
- • Production: Live environment - be careful with changes here
Setting Feature Values per Environment:
- Open a feature and navigate to the Environments tab
-
For each environment, you can:
- • Toggle the feature on/off
- • Set a percentage rollout
- • Configure user targeting rules
- Changes typically take effect immediately
- All environments are independent - changes in one don't affect others
User Targeting & Rollout Strategies
Control exactly who sees your features with powerful targeting options.
Percentage-Based Rollout:
Gradually roll out features to a percentage of users:
- • Start at 5-10% to catch issues early
- • Monitor metrics and user feedback
- • Gradually increase percentage (25%, 50%, 100%)
- Example: "dark_mode_enabled: 50%" shows dark mode to 50% of users
User Targeting Rules:
Target features to specific users based on attributes:
- • User ID: Target individual users (great for testing with your team)
- • Email Domain: Show to all @yourcompany.com users
- • User Segment: Target predefined user groups
- • Custom Attributes: Use any custom user property (plan type, location, etc.)
Rollout Strategy Example:
1. Create feature "new_dashboard"
2. Enable for internal team (target all @company.com)
3. Enable for 10% of production users
4. Monitor for issues for 24 hours
5. Increase to 50% if no issues
6. Roll out to 100% after team approval
API Integration
Integrate Easy Flags with your application using the REST API.
Getting Your API Key:
- Navigate to Space Settings
- Find the API Keys section
- Click "Generate New Key"
- Copy and store your key securely (like a password!)
Key API Endpoints:
GET /api/features
Retrieve all features for a space
GET /api/features/:key
Get a specific feature flag value
POST /api/features/:key/evaluate
Evaluate a feature for a specific user (with context)
GET /api/environments
List all environments in your space
Example Usage (Node.js):
const flags = await fetch('/api/features', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Environment': 'production'
}
}).then(r => r.json());
if (flags.new_dashboard) {
// Show new dashboard
} Team Management & Roles
Collaborate with your team while maintaining proper access control.
Available Roles:
- Admin
Full access: create features, manage team, delete resources, configure settings
- Editor
Can modify features, environments, and user targeting, but cannot manage team or delete space
- Viewer
Read-only access; can view features and environments but cannot make changes
Inviting Team Members:
- Go to Space Settings → Team Members
- Click "Invite Member"
- Enter their email address
- Select their role (Admin, Editor, or Viewer)
- They'll receive an invitation email with a join link
Troubleshooting & FAQ
Feature not showing up?
- ✓ Check if the feature is enabled in your current environment
- ✓ Verify the percentage rollout is not 0%
- ✓ Ensure your user meets any targeting criteria
- ✓ Clear browser cache and reload
- ✓ Check API key has permission for that space
How do I test a feature with my team first?
- 1. Create the feature and keep it disabled for regular users
- 2. Add user targeting rule for @company.com email domain
- 3. Or use "specific user IDs" and add your team members
- 4. Your team can test while others don't see it yet
Can I undo a deployment?
Yes! Simply reduce the percentage rollout back to 0% or disable the feature entirely. All changes take effect immediately, so you can quickly revert if needed.
Need More Help?
Can't find what you're looking for? Contact our support team.
Get in touch →