Skip to content
And the winner is...
JavaScript CSS HTML Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


And the winner is...


Click or tap the button and a cavalcade of pre-loaded items will begin to cycle more and more slowly as it finally comes to a stop, and a single choice is made. That item will then be added to a results list below the Raffler, and will not be chosen again if re-run (until a reset, naturally).

Local Development

To develop locally, a few simple steps need to be taken.

  • clone the project to your local computer git clone
  • change into the new directory cd raffler
  • install NodeJS dependencies npm install
  • build the project files gulp build
  • run a local http server npm run serve

Finally, check out http://localhost:3000 in a browser for your running instance!

To stop the local instance, issue a Ctrl-C at the command line where it's running.

Tech Specs

Raffler uses localStorage to keep data and options stateful, even in the event of a browser reload or crash.

Raffler's data set comes from assets/json/raffler_data.json, and it is structured as follows:

    "name": "Bavmorda",
    "affl": "Nockmaar"
    "name": "Elora Danan",
    "affl": "Tir Asleen"
    "name": "Madmartigan",
    "affl": "Crossroads"
    "name": "Sorsha",
    "affl": "Nockmaar"
    "name": "Willow Ufgood",
    "affl": "Newlyn"

Override this data with your own names and affiliations in order to successfully raffle off your items. Optionally, you can add additional user items on the fly (this functionality is hidden by default, however) by using the admin menu (?admin=1 in querystring). The admin menu will also allow you to stop and start a raffler in-process, re-initialize all data, as well as toggle special effects.

User Options

There are four options that can be changed via an additional override file.

  • dataFilePath - json file of Raffler items
  • logoFilePath - logo for your thingy
  • logoFileLink - click logo and go somewhere
  • talkifyKey - API key for your Talkify account (note: you must get a Talkify API key in order to have Raffler honor the "SOUND: NAME" option, which reads items as they are picked)

Simply copy config/raffler_options.user.dist to config/raffler_options.user.json and fill in your specific information.

  "dataFilePath": "./assets/json/floobidy-hoo.json",
  "logoFilePath": "./assets/images/jamma-mamma.png",
  "logoFileLink": "http://ohmanwhat.omg",
  "talkifyKey": "123456ABCDEF"

Third-Party Help

You can’t perform that action at this time.