This is the development story of how we built a virtual assistant bot for San Francisco’s huge Outside Lands music festival in 24 hours. Ranger Dave became the official bot for the festival and helped hundreds of people get timely information at Outside Lands.

It all started at Outside Hacks, the official hackathon for Outside Lands 2016 (held Aug. 5-7), one of the largest music festivals in the world. We had 24 hours to build something that would enhance the experience for artists and fans at Outside Lands (and win over the judges' hearts) — with the possibility of gaining VIP tickets to the festival.

We wanted to build a virtual assistant that would be able to answer any question attendees would have about Outside Lands. Our bot would need to understand context, and be able to go as far as recommending which performance to see next based on what you had already seen, or tell you which artists are similar to your current artist. We envisioned our hack to be the ultimate guide for band lineups, planning between multiple stages, finding food, and lots more. The bot would be hosted on Facebook Messenger and available to everyone subscribed to the Outside Lands homepage. In the end, our project — later named the Ranger Dave Bot — was one of the winning projects.

The success of the Ranger Dave bot comes from its services. Here's how we did it.

The bot was implemented with Node.js on the backend, Redis as a fast k/v persistence layer, and Heroku as a deployment platform. We chose Node.js because our application was highly I/O bound, and because JavaScript was the language our team collectively knew best. Redis was the simplest and most effective solution to handle user sessions due to its atomicity, and the ability to set TTLs on keys. Heroku helped us scale horizontally in a matter of seconds, allowing us to focus solely on the development.

While the transport layer and communication was easily handled by Facebook Messenger, building an entire Natural Language Processing (NLP) component was going to be complicated. That’s when a fellow developer proposed that we look into API.AI, which he had used previously for smaller use cases. It turned out that the platform was indeed the missing component that would make our app get where we wanted it to be. It gave Ranger Dave a human touch, turning it into the intelligent conversational bot - right out of a sci-fi movie - that we all envisioned.

Here are a few notable points that made the API.AI developer platform so valuable for us. First, API.AI’s dashboard is made for developers. The ability to test phrases out, see what user intents they connect to, and inspect the JSON helped us to iterate fast. We could train a classifier by writing example phrases, and found it could be done by anyone who has a limited NLP background (like us!). The workbench enabled us to parallelize work between team members. While one member would focus on implementation, another could focus entirely on the NLP part, saving precious time during our 24-hour rush to complete the bot.

Secondly, the API integration using API.AI’s Query API was very straightforward. The API response basically “instructs” the developer on what to do next, and what to say. In order to scale the number of simultaneous sessions we could have at once, we would generate a UUID per user and store that into Redis. Every UUID was a unique session, and allowed our bot to easily keep track of context when speaking to our users. The entire API decision flow was implemented with little effort, and allowed us to focus on the more gritty bits to our app.

Following the initial hackathon victory, the organizers of the Outside Lands 2016 festival saw its potential and decided to incorporate it into the festival’s official app. The Outside Hacks powers that be helped us quickly become production-ready from a product standpoint. The Ranger Dave bot was widely used, interacting with 788 unique guests and conducting nearly 3,000 unique conversations.

In conclusion, the combination of great team members, great mentors, and great APIs is what made Ranger Dave Bot a successful development story. Our team is now deciding on the bot’s fate, and is evaluating the possibility of pitching a re-branded version to other festivals.