Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Feature flippers are nifty.
branch: master
Failed to load latest commit information.
examples Add an example.
lib Push strategy accessor into adapter.
spec Push strategy accessor into adapter.
.gitignore LOL this doesn't even work yet.
Gemfile Fix up deps. Update README.
Rakefile Add Rakefile.
brollout.gemspec Fix up deps.


Inspired by James Golick's rollout, brollout makes it easy to turn features on and off in your application. You can disable a feature if you need to run a site in degraded mode, you can turn a feature on for a percentage of your users, or you can ramp a feature up by percentage of requests when you're testing new infrastructure.

This is just a sketch. Don't rage me, bro.

Bro! Show me that code

# Store feature flags in Redis
Brollout.adapter =

$friend_finder = Brollout.feature(:friend_finder, :on_off)
$new_cache = Brollout.feature(:new_cache, :per_request_percentage)

Brollout.register_strategy(:custom) do |user|
  user.admin? || per_user_percentage(user)

$better_sharing = Brollout.feature(:better_sharing, :custom)

$simple = Brollout.feature(:simple, :on_off,

if $
  # Do friend finder things
  # Do something else


if $
  # Use the new cache
  # Use the old cache


if $
  # Show the new feature
  # Show the old feature

Bro, how do I toggle and can I toggle my own toggle?

Brollout ships with the following toggle strategies:

  • On/off
  • Random percentage
  • Per object ID
  • Object ID modulo

In addition, you can implement your own toggle strategies by using the register_strategy:

Brollout.register_strategy(:custom) do |user|
  user.admin? || per_user_percentage(user)

Pretty snazzy, no?

Bro, you can stick it wherever you stick things

Brollout ships with adapters to store feature flags in per-process memory, memcached, redis, or wherever it is you like to store things. Adapters implement the following contract:


Bro, can I license that thing?

Yep! Brollout is copyright 2011 Adam Keys. Brollout is MIT licensed, so go crazy, bro.

Something went wrong with that request. Please try again.