Joyent

Joyent Weblog

Top 3 Keys to Viral Apps on Facebook

We see thousands of Facebook applications. Over 4,000 developers run their Facebook apps on Joyent Facebook Accelerators. We have seen people grow from 10 users to 10,000,000. And, we have seen great apps go nowhere.

Tonight, I was talking with SocialMedia’s Nick Gonzalez. Nick said that the Facebook app space is a microcosm of the web. He’s right. A radically sped up microcosm. From a position like Joyent’s, we get to see the whole ecosystem evolve in a way that is like watching a film from a stop motion camera.

And from this perspective, we can see the keys to Virality. Here they are in order:

#1 Your application must load fast

Virality is very tenuous. If someone invites you to an app, and when you check it out, it loads slowly, or doesn’t load at all, you give up and, more than likely, you will never check it again.

Look through the facebook app directory, you will see beautiful, well designed, rich applications fail to go viral because they have not solved this speed problem.

This doesn’t mean the whole app has to be super fast. But the first page had better be.

Technically, this means using every trick in the book to help make the page load quickly. Start by writing code that generates the front page as a highly static html file. Update that file every few minutes if you need to. Then use something like Nginx, for example, to kick out these small html files lightning fast. Making smart use of hardware load balancers means requests for more dynamic pages can to sent to different ports with different services, such as Apache or Mongrel.

Joyent can help you with some of the speed issues. We can arm you with more Accelerators at the app layer and bigger Accelerators at the DB layer. Our hardware load balancers help tremendously, as does the fact that our data center is peered with Facebook’s. But, none of that can fully make up for an application design and a deployment architecture that is not geared towards speed. If you run everything through one app server and dynamically generate each front page, your application is going to be slower than it could be otherwise. Thinking about designing for speed right from the beginning will help tremendously.

#2 People like showing off

This is a less technical point, but it reflects what we have been seeing. People like to show off. Apps that call for user created content are often more viral. If you generate content by posting a photo, a sticker or even fill out a personal survey, you are more likely to invite your friends to the application so you can show off what you have created.

#3 Start Simple, Add Complexity

Apps that require only the simplest initial user participation tend to be more viral. This is similar to the first criteria in that it relates to speed. But here, instead of speedy page load time, the focus is on user understanding.

Your first page has to be understood instantly. If your app’s objective can be described in only its name, or just one sentence, you are golden.

A Great Example: Where I’ve Been

Where I’ve Been is a great example. The name says it all. You know what the application is as soon as you seen the invite from a friend. The app requires users to create a map showing all the countries they have visited. That gives you something to show off, which in turn motivates you to invite friends to the application. And finally, the team that has created it has put together an application that is super fast.


  1. it’s “lightning fast” not “lightening fast”

    — Powen    218 days ago    #
  2. For FB app on Joyent to be successful, it would also help if we had:

    * An API for Accelerators where I can auto-start/stop Accelerators and get billed solely for the time I use. (Which also then means we need a pay to upload our configured VM image)

    * A drastically improved administrative interface. Face it guys, unless you are already a UNIX admin – you won’t the current web admin interface and how to use it.

    * Reduced prices for the amount of RAM given. (The bandwidth you guys give is nice, but seriously – the vast majority of people only need a small fraction of what you give … to giving even more bandwidth does make me feel better for paying double what others charge for the same amount of RAM/CPU)

    — Doug    218 days ago    #
  3. These aren’t exactly keys to, um, virility, but:

    #4: Don’t force your users to invite 20 of their friends before they get to use the full functionality of your app.

    #5: Make your newsfeed links actually do the action that you say they are going to do. For example, if Top Friends displays a link in a news feed that says “Click here to see your drink”, that link should – duh – take me directly to a page that shows my drink – not the Top Friends main page showing all my friends and not a drink in sight. I’m amazed at how many apps get this wrong; they word their newsfeed links with specific imperative promises and then totally fail to deliver.

    Joel    218 days ago    #
  4. Joyent, would you please write a post giving PROs/CONs to Accelerators over EC2. Pleeeeeeeeeease.

    I love you guys but with now Amazon offering a support contract for EC2, persistent storage, static IPs, an API to dynamically scale my web app … and overall better pricing, I simply don’t know how to say “no” to Amazon.

    Thanks in advance

    — Doug    218 days ago    #
  5. Hi Doug, working on it, it’ll have everything you’re looking for.

    Jason A. Hoffman    217 days ago    #

Commenting is closed for this article.