Created: 2012-03-22 12:39
Updated: 2014-06-29 19:46
License: mit


Build Status

Vanilla is a simple, reusable user database component designed to work as an OAuth provider for any application:

  • Designed to work with Checkpoint and Pebblestack, but this is optional.
  • Multi-tenant, can host many different client applications.
  • OAuth 2.0 (draft 25) provider.
  • Login session management.
  • Secure salted password storage.
  • I18n-ready.


Vanilla uses ActiveRecord for database bindings.

Templating is currently provided entirely by client application.


  • Use config/database-example.yml as a starting point to create config/database.yml.
  • Create database: bundle exec rake db:bootstrap.
  • To run with Pow, symlink folder into ~/.pow.
  • To run with Unicorn, start with bundle exec unicorn


Vanilla does not have an UI as such. Instead, it delegates all UI interactions to the client application. It does this by sending template requests to the client app.

For example, let's say the client application is on, and that Vanilla is hosted on To render the login page, the user reaches the Vanilla URL:

This then internally calls the client app to render a login page:

It is the client app's responsibility to render a nice-looking login page using whatever technology it prefers.

See for overview of templates.


  • Render i18n-independent validation errors.
  • Policy config for whether mobile, email are required.
  • Move verification of mobile, email to external component(s) (Hermes).
  • Tight integration with Checkpoint is probably a good idea.


See LICENSE file.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more