When Rap Genius started out, founder and developer Tom Lehman built and deployed the site in a day. As an innovator and a bit of an idea man, it was just one of many projects on Lehman’s plate. According to Lehman, it was the ease of quickly developing and deploying on Heroku that allowed him to find an idea that finally caught fire.
“The great thing about Heroku is that it’s so easy to create an application and run it that you don’t have to be all serious at first,” explained Lehman. “All these sites were just fun side projects that I did and put on Heroku because it was the easiest way to host them.”
From 0 to 10 Million
Rap Genius, the self-dubbed “hip-hop Wikipedia”, is a community driven project where users can find and help provide meaning to rap lyrics. Anyone can create an account, highlight a verse and help the less lyrically-inclined understand the latest Jay-Z lines. When Lehman first launched the site, it was one of many projects, but it quickly grew to become his primary focus, drawing nearly 10 million unique monthly visitors.
“Rap Genius really took off and now it’s this really big site and it wasn’t like I had to plan for that. I don’t have to worry about changing anything or worry that I made a mistake early on that constricted the growth with the hosting strategy I chose,” said Lehman. “You don’t have to plan for the future growth of your application, you can just put it up and see what happens.”
When Rap Genius loads a page, it runs several processes in the background – from loading lyric explanations to gathering comments, votes and user-specific data. With Heroku’s Process Model, these processes can be isolated, so they operate efficiently without affecting an application’s overall performance. When it comes to scaling the app, individual processes can be scaled up or down, according to need, with a simple terminal command.
Lehman explained that handling the increase in traffic was made simple with Heroku. Rather than focusing on the intracacies of managing server load, Heroku helped him to continue focusing on developing a solid application.
“There are some aspects of Heroku that make it trivial to scale. You just increase the number of dynos you have and that allows you to scale up without having to make any sort of logical changes to what your applications is doing,” said Lehman. “There’s no way to abstract away all of the details of increasing performance, but from a technical perspective it’s been pretty painless. Heroku guides you through it in a sense.”
It’s All About the Add-Ons
For Lehman, it wasn’t only about Heroku’s ability to quickly deploy and scale applications – it was about Heroku’s extensive array of add-ons. Add-ons help handle simple and complex tasks alike, from sending users emails to searching the massive database of lyrics and explanations, without bogging Lehman down.
“If I had to get this functionality going without using third-party add-ons, there would have been way bigger time and energy costs,” he noted.
One of his favorite add-ons, New Relic, helps him track down parts of his application that might be running slowly and bogging down the user experience. He explained that, while New Relic is generally platform agnostic, the fact that Heroku offers it as an add-on makes it far more reliable and saves him a lot of time and mental anguish.
“You don’t want to be looking at New Relic and thinking to yourself ‘Is this thing I’m looking at detecting a problem with my application or is it potentially detecting a problem with the way I set up New Relic itself?’ You want to debug your application, you don’t want to debug the tool that you’re using to debug your application,” said Lehman. “Anything that can reduce my burden for the tools that I’m using is really, really valuable.”
From Idea to Application
At the end of the day, Lehman said that the ease of turning an idea into a live, running application set Heroku apart from other platforms.
“The biggest sell for someone who just started using Heroku is ease of deployment – getting an application that works on your computer to work on a site on the Internet is something you take for granted if you’ve been using Heroku for a while,” said Lehman. “The idea that that can be a one or two line command versus another headache is really attractive.”