We're using Ruby, Sinatra, HTTParty, Twitter Search API, Postgres, and Unicorn on a Heroku instance. Basically requesting the page pulls recent tweets from twitter matching the search '#replacereader', those tweets are checked against the DB to prevent dupe counting or multiple votes from one account, and new votes are added accordingly. Vote counts along with our list of replacements are pulled from the database and passed to a haml view, and unicorn caches page requests (including DB lookups and Twitter lookups) for 60 seconds to prevent exceeding APIs or Heroku's Postgres database limits.