David Cramer's Blog

Feature Switches in Django with Gargoyle

A while back we talked about using feature switches to deal with partial deployment. This allows you to easily deploy to portions of your audience, or bring out less finalized features without hiding them behind branches and the likes. This last week we hosted a company hack day here at DISQUS, and myself and Anton Kovalyov decided we'd open source our switches platform. So the idea was that everyone here had a whole day to work on their projects. We figured that'd leave us plenty of time left over. In the end it turned out that creating an extensible platform was a bit more work than we had hoped.

After hack day, and some sparse hours of finalizing things, we're proud to be announcing Gargoyle today.


So out of the box, here's what you get:

  • Support for IP address (by percent and IP)
  • Support for User (by percent, username, is_staff, is_superuser, and is_anonymous)
  • Integration using Nexus (post incoming later this week)
  • Easily extensible form-like condition sets for adding your own

Check out the README and let us know what you think!