Last weekend we teamed up with the Syracuse Student Sandbox, a student accelerator program, for a weekend-long hackathon. The hacks and teams were of unprecedented caliber, including the team behind the app BeerText.Us. Doug Crescenzi, Ross Lazerowitz and Carter Yagemann built this app for brew lovers and in 72 hours they grew to thousands of users with national news headlines among other tech blog stardom.
After hit with the initial traffic boom the team had to take community feedback and quickly iterate to scale. The following is the story of how BeerText.Us came to be, written by the team who built it.
BeerText.Us: 10 hours of hacking with Twilio, thousands of users to follow
This past weekend, with help from the folks at Twilio and the Syracuse Student Sandbox, we were fortunate enough to have the opportunity to organize a Twilio hackathon. There was one rule: Twilio had to be used for at least one feature. Everything else was fair game. The hackathon kicked off around 11am and ran until 9pm. In other words, ten hours of awesome people, hardcore coding and beer.
My partner, Ross Lazerowitz and I had been flirting with an idea that would allow users to send an SMS to query a database to learn more about the beers they’re drinking (i.e. descriptions, ingredients, alcohol by volume, etc). We love trying new beers, and believed a simple tool like this would be quite useful. Luckily, we stumbled across the BreweryDB API which allows developers to interface with a vast collection of beer data.
How We Built It
First, I stood up our cloud infrastructure on Heroku for the Rails application, and Ross and Carter began playing around with the BreweryDB API. Once our Heroku instance was live, I started doing frontend work and stood up a client to talk to the Twilio API. Shortly thereafter, I was able to pull the parameters from the Body of SMS messages our Twilio number would receive. By this time, Ross and Carter had already mastered interfacing with the BreweryDB API (I mentioned they were smart dudes, right?).
Next, it was all about duct taping the way I had set up Twilio with what Ross and Carter were doing with BreweryDB. Our code was ugly. Really ugly, but it was working (sort of).
Then it was all about boundary checking and validations. This is where Carter excelled. I have a Computer Science degree, but I suck at that kind of thing. Carter is excellent, and had roughly %70 of our use cases accounted for in an hour or so. It was exciting to watch Ross and Carter collaborate on this. Ross would hack away and do testing in the IRB shell, while simultaneously maintaining a fluid dialogue with Carter regarding what needed fixing and thoughts on how to fix it.
In the final one-to-hours of the hackathon, we tightened up the frontend design (thank you TwitterBootstrap), and Ross and I went back and forth making our final pushes/pulls to and from Github. Our workflow certainly wasn’t the best (we had a lot of merge conflicts, but we were able to grind through them). I’d encourage others to decide on a proper workflow *before* hacking away like crazed savages.
Within five minutes of the deadline, we submitted our final version of the application to the hackathon judge, Jon Gottfried, an extremely talented developer evangelist from Twilio.
On Monday, we decided to submit the application to beerit (i.e. the reddit page for beer lovers [r/beer]) to get some feedback. Within minutes, we were getting thousands of hits, and making hundreds upon hundreds of SMS send/receive requests to Twilio. What was even more exciting was the feedback we were getting from users. The service had a lot of problems at first (i.e. error handling, SMSs being received out of order, duplicate responses, etc). Fortunate for us, the beerit community was quick to help us identify most of these issues and offer suggestions regarding how we should address them.
Next, we submitted the application to HackerNews. Again, we got awesome feedback from folks. Clear patterns regarding issues users were having and what they wanted to see in the service were becoming evident.
Late Night Changes
After going through all of the feedback from commenters, we pulled a late night and made a number of updates to the service. Before we went to sleep, we were confident it was much improved.
The Morning After
When I woke up, I went through the Twilio and Heroku logs, glanced at Google analytics, and noticed a significant dip in traffic (which was to be expected). Then, I got a call from Ross. “Shit dude, we’re on Lifehacker. That’s my favorite site!”
Following the Lifehacker post, traffic skyrocketed. It more than tripled what we were seeing from the beerit post at its peak. Since then it has spread to a number of other sites, and traffic continues to rise.
Iterating as Quickly as Possible
As you can imagine, we’re battling all sorts of issues. We’re doing our best to put these fires out as quickly as possible (and learning a ridiculous amount along the way)! We really appreciate everyone’s feedback, and are really excited to offer a service to users that will help them pick and choose new beers to try!
Thanks to the folks at Twilio
We really owe a great deal of thanks to the folks at Twilio for offering such an awesome service! They’ve been incredibly generous and altruistic. Thanks Twilio team! We love your service!
Learn more about the BeerText.US team
Doug Crescenzi – Doug wears multiple hats. He’s a startup n00b with one failed company under his belt, a PhD student pursuing a degree in Information Science & Technology and a Senior Information Security Engineer/Scientist at The MITRE Corporation. Doug is passionate about world changing ideas and catfish burritos. Follow on Twitter @dougiebuckets. He’s moving to NYC in a month, ready meet up and get a beer!
Ross Lazerowitz - Ross is studying Information Management & Technology at the Syracuse University iSchool. He is a co-founder of Blu Arc Media, a Corporate Intern at JP Morgan Chase, ad the Director of Technology for the Syracuse University Student Association. He spends his free time rolling with Rails and jamming out on guitar. Rosslazer.com @rosslazer firstname.lastname@example.org
Carter Yagemann - Carter is an undergraduate computer science major studying at L.C. Smith School of Engineering and Computer Science at Syracuse University. His hobbies include programming and playing video games. Carter started learning ruby on rails a year ago during an internship with Frontier Communications.