ShipEasy
Flags & Experiments

Which primitive should I use?

Decision tree — map your goal to gates, configs, killswitches, or experiments.

You have a change to ship. Which ShipEasy primitive fits? Walk the tree.

Cheat sheet

Common mistakes

Using a gate when you should be using a config

If your code reads if (gate) value = 'A' else value = 'B', you've smuggled a value through a boolean. Use a config — schema-validated, typed, supports more than two values.

Using a gate when you should be using an experiment

If you're using a 50% rollout to "see if v2 is better", you have no statistical guarantee. Use an experiment — same UX, but you get a p-value and a confidence interval back.

Using a gate when you should be using a killswitch

Page-at-3am gates blur incident response. Killswitches sit in their own list, default to "on", and don't have ramp percentages to fat-finger.

On this page