Feature flags (also called feature toggles) are conditional switches in code that let teams control feature availability in production at runtime, without deploying new code. Progressive delivery extends this concept into a disciplined release strategy—combining feature flags, canary releases, and gradual rollouts to minimize risk while maximizing learning. This approach decouples deployment (code reaches production) from release (users see the feature), giving teams fine-grained control over who sees what, when. Unlike traditional deploy-and-pray methods, progressive delivery treats every release as a controlled experiment where blast radius stays small, rollback is instant, and feature exposure can be dialed up or down based on real-time metrics. The key mental model: feature flags are the control mechanism; progressive delivery is the strategic framework for safe, incremental innovation at scale.
What This Cheat Sheet Covers
This topic spans 14 focused tables and 75 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Feature Flag Types
| Type | Example | Description |
|---|---|---|
if (flags.newCheckout) { renderNewFlow()} else { renderOldFlow()} | • Short-lived flag that hides incomplete features from users until ready • removed once feature reaches 100% rollout. Typical lifespan: days to weeks. | |
variant = flags.pricingTestif (variant === 'A') { showPrice(9.99)} | • Drives A/B tests or multivariate experiments by assigning users to variations • retired after statistical significance reached. High dynamism — changes frequently during test. | |
if (flags.enableCaching && load > threshold) { useCache()} | • Long-lived flag controlling operational behavior like caching, rate limiting, or load shedding • acts as circuit breaker or performance tuner. Never expires if tied to system behavior. |