Gradual rollout
Gradual rollout: ship to 1% before 100%
A gradual rollout exposes a new feature to a small percentage of users, watches the metrics, then steps up until everyone has it. One slider, no redeploys, and every step is reversible in seconds.
01 · The ladder
1% finds the bug. 10% finds the load. 100% is a formality.
The classic ladder is 1% → 10% → 50% → 100%, with a hold at each rung long enough for your metrics to mean something. Each step answers a different question, so skipping one skips the question.
Correctness
Does the new path work on real users, real data shapes, real devices? A handful of sessions exercise it while the blast radius rounds to zero.
Hold: a few hours to a day
Behaviour at volume
Enough traffic for error rates and latency percentiles to be signal instead of noise. Caches, queues and rate limits start telling the truth.
Hold: a day, through a traffic peak
Side-by-side comparison
Half on old, half on new: the cleanest A/B read you will ever get on conversion and guardrail metrics before committing.
Hold: long enough for a decision
Everyone
The rollout is done, the flag is now debt. Schedule its deletion and keep the old path until you are sure you will never flip back.
Then: clean up the flag
The first rung is a canary deployment by another name; the 50% rung is A/B testing if you attach a hypothesis. The full playbook, hold times and exit criteria are in how to run a gradual rollout.
02 · Why users do not flicker
Sticky cohorts, or a rollout is just a coin flip
A percentage rollout is useless if users bounce between old and new on every request. Toggled buckets each user by a consistent hash of their id: at 10%, the same 10% of users see the feature on every visit, every device, every service. Move the slider to 25% and the original 10% stay in; new users join, nobody leaves.
The same hash runs in every SDK, so your Node.js backend and your React frontend always agree about who is in the cohort.
One rollout, step by step
day 0 rollout: 1%
Deploy dark, flip to 1%. Watch errors overnight.
day 1 rollout: 10%
Error rate flat, p95 flat. Step up through the morning peak.
day 2 rollout: 50%
Conversion +2.1% vs old (sample). Guardrails green.
day 3 rollout: 100%
Everyone on the new path. Flag scheduled for cleanup.
At any rung, one bad metric and the kill switch puts everyone back on the old path in about 3 seconds. That exit is what makes the ladder safe to climb.
03 · The dashboard
Three metrics decide every step
Error rate
The stop signal. Compare the cohort on the new path against the old path, not against yesterday. Any sustained gap stops the ladder.
Latency (p95)
New code paths hide slow queries and chatty calls. Percentiles at 10% predict what 100% will feel like before anyone tweets about it.
The feature's own metric
Checkout completion, activation, whatever the feature exists to move. If it is flat at 50%, going to 100% is a choice, not a default.
Percentage rollouts, targeting and the metrics view are all part of the same feature flag toolset, and the live console on the homepage lets you drag a rollout slider right now, in your browser.
Early access · launching soon
Climb from 1% to 100% with one slider
Toggled is in early access. Join the list and run your next launch as a ladder instead of a leap. Flat pricing, unlimited seats, no card required.
No card required · your data stays yours
Keep exploring
More feature flag resources
- Feature Flag Kill Switch
- React Feature Flags
- Next.js Feature Flags
- Node.js Feature Flags for APIs and Backends
- Python Feature Flags for Django, Flask and FastAPI
- Go Feature Flags With Sub-Millisecond Checks
- Feature Flags Platform
- Managing Feature Flags
- Feature Flag Tools
- A/B Testing Software Powered by Feature Flags
- Feature Flag Service Use Cases for Product Teams
- Feature Flag Software Pricing, Unlimited Seats