Feature Flags Without the $300/mo Bill


Feature flags are not a luxury reserved for companies with 50+ engineers and six-figure tooling budgets. They are a fundamental deployment safety mechanism that every team needs.

Why Feature Flags Matter for Every Team

Feature flags decouple deployment from release. You can merge code to main, deploy it to production, and keep it invisible to users until you are ready.

Gradual Rollouts

Ship to 5% of users, monitor error rates, then scale to 100%. Reduce blast radius on every release.

Instant Rollbacks

Bad release? Flip a flag instead of reverting commits and redeploying. Takes seconds, not minutes.

Targeted Releases

Show new features to beta users, enterprise customers, or specific regions. Surgical precision.

Kill Switches

Disable a feature in seconds when something goes wrong in production. Via dashboard, API, CLI, or Slack.

Percentage Rollouts with Sticky Hashing

The most common use of feature flags is a percentage rollout: show the new checkout flow to 10% of users, then ramp up.

But the rollout must be sticky. If user Alice is in the 10% group, she must stay in the 10% group on every page load, every API call, every session.

Depify uses deterministic hashing (MurmurHash3 of flag_key + user_id) to assign each user to a consistent bucket.

# How sticky hashing works internally
hash = murmurhash3("new_checkout" + "user_12345")
bucket = hash % 100  # => 37

# If rollout percentage is 10%: bucket 37 >= 10, feature OFF
# If rollout percentage is 50%: bucket 37 < 50, feature ON
# User 12345 always gets bucket 37 for "new_checkout"
User Targeting with 11 Operators

Sometimes you need surgical precision: show this feature to enterprise customers in Europe, or to users who signed up in the last 30 days.

Operator Description Example
equalsExact matchplan equals "enterprise"
not_equalsDoes not matchrole not_equals "viewer"
containsString containsemail contains "@company.com"
not_containsString does not containemail not_contains "test"
starts_withString prefixcountry starts_with "US"
ends_withString suffixemail ends_with ".edu"
greater_thanNumeric comparisonage greater_than 18
less_thanNumeric comparisondays_since_signup less_than 30
inValue in setuser_id in ["u1", "u2", "u3"]
not_inValue not in setcountry not_in ["CN", "RU"]
matchesRegex matchemail matches ".*@gmail\\.com"

Rules can be combined with AND/OR logic to create complex targeting segments reusable across multiple flags.

Multi-Variate Flags for A/B/C Testing

Boolean flags are the most common, but they are not sufficient for A/B testing. Depify supports multi-variate flags with up to 10 variants.

curl -X POST https://api.depify.io/api/v1/flags \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "flag": {
      "key": "checkout_layout",
      "name": "Checkout Page Layout",
      "flag_type": "multivariate",
      "variants": [
        { "key": "control",   "value": "single_page", "weight": 34 },
        { "key": "variant_a", "value": "multi_step",  "weight": 33 },
        { "key": "variant_b", "value": "accordion",   "weight": 33 }
      ],
      "environment": "production"
    }
  }'
Environments with Promote Flow

Flags live in environments: development, staging, and production. Each environment has its own state and targeting rules.

Development: ON for all
Staging: QA team only
Production: 5% rollout

When ready to promote, Depify copies the flag configuration from one environment to the next. No manual re-entry, no copy-paste errors.

Kill Switch for Emergencies

When something goes wrong in production, you need to disable a feature in seconds, not minutes.

Dashboard

One-click kill switch from the Depify dashboard. Instant propagation.

CLI / API / Slack

depify flags kill checkout_layout --env production or /depify kill checkout_layout in Slack.

Scheduled Rollouts

Depify supports scheduled rollouts that automatically increase the percentage over time.

curl -X POST https://api.depify.io/api/v1/flags/checkout_layout/schedule \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "schedule": {
      "steps": [
        { "percentage": 5,   "at": "2026-03-24T09:00:00Z" },
        { "percentage": 25,  "at": "2026-03-25T09:00:00Z" },
        { "percentage": 50,  "at": "2026-03-26T09:00:00Z" },
        { "percentage": 100, "at": "2026-03-28T09:00:00Z" }
      ],
      "auto_pause_on_error_spike": true,
      "error_threshold_percent": 5
    }
  }'
REST API: Works from Any Language

Depify flags are evaluated via a simple REST API. No SDK required. This means flags work from any language, any framework, any runtime.

// JavaScript / Node.js
const response = await fetch(
  'https://api.depify.io/api/v1/flags/evaluate',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${DEPIFY_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      flag_key: 'new_checkout',
      context: {
        user_id: currentUser.id,
        email: currentUser.email,
        plan: currentUser.plan
      }
    })
  }
);

const { enabled, variant } = await response.json();

if (enabled) {
  renderNewCheckout(variant);
} else {
  renderLegacyCheckout();
}
# Python
import requests

result = requests.post(
    'https://api.depify.io/api/v1/flags/evaluate',
    headers={'Authorization': f'Bearer {DEPIFY_API_KEY}'},
    json={
        'flag_key': 'new_checkout',
        'context': {
            'user_id': str(current_user.id),
            'email': current_user.email,
            'plan': current_user.plan
        }
    }
).json()

if result['enabled']:
    return render_new_checkout(result.get('variant'))
else:
    return render_legacy_checkout()
The Evaluation Flow
1. Kill Switch
2. Prerequisites
3. Segment Match
4. % Rollout
5. Default OFF

The evaluation chain runs in strict order: kill switch, prerequisites, targeting segments, percentage rollout, default. This gives you fine-grained control over exactly who sees what.

Getting Started

Feature flags are included in every Depify plan. The free tier includes 10 flags with boolean and multivariate support.

Pro plans include unlimited flags, scheduled rollouts, and targeting segments.

Ship Features Safely

Percentage rollouts, targeting rules, kill switches, and scheduled rollouts. Included in every plan.

Start Free Trial