R/GA Plan B at SxSW
Who better than the R/GA Austin office to help guide the masses though the almost 1200 sessions and panels than veterans of the conference who also happen to live here. The idea for Plan B was simple – help people find an alternative if the session they wanted to see was either sold out, or worse yet lame. Plan B gave attendees a backup plan by only showing the best sessions going on near them.
At night the theme of the app would switch from light to dark, and the sessions would turn into our Group Director Kyle Bunch’s FourSquare list of the best watering holes in Austin to help curate conference goers alternatives to hour-long waits for parties.
The immediate challenge was that the official SXSW schedule had no API, no XML feed, no JSON call to speak of. But they did have a public iCal feed for your picked sessions. Our strategy was to curate the feed but have at least 5 sessions per time slot so that hopefully no matter where you were, you would be able to get something relatively close by when you loaded the app up. We then converted the iCal data to JSON using a technique we read about here.
Given that the data set was now so small, we opted to just store the 75k of raw JSON on the Azure server and read it in directly via node.js, hopefully reducing server cycles and speeding up the entire app. Node did the bulk of the work of rendering the page, leaving a few ajax calls to load time slot data.
We eventually ran into some time zones issues related to the Azure server’s GMT offset. When doing development locally in Node, your server is your machine, so naturally your server’s time zone will be the same. All of the data for iCal was set in Central time and I’m located in Austin, so everything lined up nicely. Until we got dangerously close to launch. This gave me new respect for this quip:
“If you don’t hate time zones, you’re not a real programmer.” – @joshsusser
The front-end was a stripped down Twitter – BootStrap for the CSS, a little bit of jQuery, and one custom CSS and Javascript file where all that were needed. Thanks to a super clean design, only 2 image requests were made and the entire page came in at a slim 310k with an average load time of 1.5s. Once the page was loaded with the sessions going on at that time, the data was cross referenced with all the locations and a pre-compiled list of venues, complete with their plotted latitude and longitude, then re-sorted by distance from your current location using the geolocation API.
Overall the app ran great, got some solid positive feedback and was fairly well used during the 5 days of SXSW Interactive.



