Cookie based dev feature toggles for Phoenix apps
Elixir HTML


An elixir plug that allows developers to turn on/off feature switches using cookies in their Plug-based web apps.


First, add :laboratory to your app's mix.exs file. Next, add the features that need to be toggled inside config/dev.exs:

config :laboratory,
  features: [
    {:homepage_redesign, "Homepage Redesign", "This turns on the shiny new homepage design!"},
    etc ..

Now, mount Laboratory.Router at an endpoint in your router:

# In phoenix app's web/router.ex

scope "/lab", Laboratory do
  forward "/", Router

If not using phoenix framework,

# In your app's plug router

forward "/lab", to: Laboratory.Router

Now you can visit http://localhost:4000/lab to enable/disable the features you want to test.

If you are the one who's developing the feature with id :homepage_redesign, you can use the condition if Laboratory.enabled?(conn, :homepage_redesign) in your code for switching the feature on/off.