Exploring the Facebook Platform, Part 1

by Fred Stutzman
August 23, 2007

Introduction

In early June, the social network Facebook debuted the Facebook Platform, a system that enables third-party developers to create applications to run inside the service. Combining the Facebook API and a proprietary markup system known as FBML (Facebook Markup Language), third-party application developers are now able to create robust applications that interact directly with Facebook's users, inside of Facebook. Designers can leverage Facebook's ever-expanding userbase as a potential audience, while at the same time the applications can be integrated with Facebook's nascent information-sharing functions, facilitating the viral spread of applications. In a speech to developers, CEO Mark Zuckerberg characterized the Facebook Platform as providing developers "deep integration" and the opportunity to use the "social graph" for mass distribution, resulting in new business opportunities.

Meet the Platform

In just over two months, developers have created nearly 2500 applications. The most-added application, Top Friends, has drawn over 12 million users, while a number of other applications have drawn over six million users each. [Note: to view the Facebook Platform application pages linked to in this article, you must have a Facebook account and be logged into Facebook.] Fueling the frenzy have been reports of application mergers and acquisition; it seems to be increasingly becoming a must that startups have a Facebook application. Hailed by users, bloggers, and the press, Facebook's platform looks like it might be the killer app that transforms Facebook from a college-oriented social network to a household name.

In this two-part series, I'm going to explore Facebook and the Facebook platform. In this first part, I'll explore Facebook's motivation and goals in creating the Platform, looking at how Platform fits into Facebook's overall strategy. I'll then look at how Facebook's strategy leverages networks and principles of Web 2.0, exploring what other organizations can take away from Facebook's moves. In the second part of this series, I will provide a walkthrough tutorial for creating a simple Facebook platform application, so that you can start taking advantage of the Facebook ecosystem.

Figure1

Confusing enough? We'll being by parsing this out a little bit and exploring some examples. Let's look at the first case, in which a third-party developer creates an application for Facebook. Developed by Trey Phillips, Extended Info is a Facebook application that allows users to create an extended version of their Facebook profile by sharing more information about themselves, such as ethnicity or pet peeves. If you look at Extended Info, you'll notice that it looks pretty much exactly like the standard Facebook profile, except that it has additional fields for you to share information. In this case, the developer has created a standalone application that explicitly delivers information to the Facebook profile. The designer runs the application business logic and database, and the user interface components are handled by Facebook's FBML.

Figure2

In the second case, we'll look at a company that has ported its product to enable its operation inside of Facebook. Prior to the development of the Facebook Platform, iLike was a web-based music discovery service, much like Last.fm or Pandora. Very early on, however, iLike integrated with Facebook Platform, and has experienced a great deal of success as a result (iLike is currently the fifth most-added application on Facebook). In integrating with the Facebook Platform, iLike retained their business logic and back-end database, but they had to create a new user-facing interface that specifically linked their application into Facebook. In a very simplistic sense, they "skinned" their application for use inside of Facebook. To users, the application integrates seamlessly inside the profile, appearing as if it is run from inside Facebook.

Figure3

The critical component of the Facebook Platform is the interplay between the third-party application and Facebook itself. In integrating, the application gains access to all sorts of information about the Facebook user: their profile, friend network, and data-sharing tools like messages and the newsfeed. Facebook calls this network of information and connections that surround a user the "social graph." As a result, Facebook Platform applications can be hyper-personalized, or can leverage the information one shares to deliver a better experience. It can also make an application hyper-viral, such as in the case of the Zombies application, in which friends are encouraged to virtually bite each other.

Networks and Viral Growth

What is the payoff for Facebook? In his talk debuting the Facebook Platform, Mark Zuckerberg talked specifically about the power of networks, and how networks grow more valuable as more individuals join. Zuckerberg drew on two key laws that govern the utility of networks: Metcalfe's Law and Reed's Law.

Robert Metcalfe, the founder of 3COM, famously coined his eponymous law when attempting to describe the value of an Ethernet network. In Metcalfe's law, a network grows proportionally more valuable as new nodes join. For example, when a new telephone is added to the network, the network becomes more valuable for everyone on the network, because everyone is now able to call this new telephone. Reed's law is a somewhat different take on Metcalfe's law, and it explains that networks grow exponentially more valuable as new people join. In this case, we can imagine that when a new person joins a network, they can now form groups of interest of any size with other people in the network.

Figure4

In Mark Zuckerberg's address to the developer community, he drew upon Reed's Law to demonstrate the value of the Platform. Third-party applications bring new users to the service, and incite the users to share more information. This information sharing makes the network more valuable, producing a cascade effect where users continue to share more information. Facebook's prime motivation for creating the Platform is to make the network more valuable all around, but there are some other interesting effects as well.

Openness and Keeping Users Happy

There are a couple of clear lessons we can take from Facebook's choice to allow other developers inside their walls. First and foremost, its quite clear that open is in; remix culture, mash-ups, and open APIs are very much a part of Web 2.0. At the very least, Facebook is embracing this trend to give users and third-party developers the kind of access they've come to expect from other application platforms.

It's also a matter of common sense. Social network developers face a remarkable challenge in trying to keep their userbases happy. While the developers of social networks seek to build tools that their users will enjoy, it's always impossible to keep everyone happy, especially when you have millions of users. Anyone who has ever worked on a consumer software application is well aware of the feature-request cycle; try as you may, it's impossible to keep everyone happy, all of the time.

With the Platform, Facebook has engaged the long tail by turning to third-party developers to keep Facebook users happy. Now that anyone can create a Facebook application, users need only to find a web developer in their midst to create applications they desire. Extended Info is a perfect example of this; let's say that a bunch of users were unhappy that they couldn't add a bunch of new fields to their profiles. In creating the Extended Info application, this need is now answered--and Facebook didn't have to spend any development cycles. This is a perfect example of how Facebook has leveraged the long tail and peer production to keep its userbase happy.

At the same time, social networks are fickle places, and users are prone to migrate from site to site as they tire of their current social network. In establishing the Platform, Facebook has introduced a flexibility into the service that is actually an attempt at future-proofing. In an old-fashioned idea cycle, user desires would have to bubble up to company representatives, and then get pitched and approved as products, and then be developed. Now, when users have a desire, they can simply engage in the development process to create the feature they desire, and if the project is too big, companies can develop the product and monetize their work. Instead of users running out of things to do, or simply getting bored with the service, Facebook has positioned itself so that it will always be in a fluid state. As new applications rise in popularity, users will have an extensive set of new features for experimentation.

Tech Specs

How do you actually go about taking advantage of the Facebook Platform? If you're familiar with software development, and have worked with a third-party API like Google Maps, you'll find Facebook's approach to be pretty standard. Developers are provided official libraries for PHP and Java, but unofficial libraries have cropped up for Python, Ruby, and a number of other languages. The main component that will take some getting used to is FBML, the HTML-like set of entities that govern interactions between third-party applications and Facebook. Facebook has provided a number of code samples, documentation, and a developer wiki to assist developers. Furthermore, a large developer community and forum have emerged inside Facebook, where friendly developers work together to solve problems. We'll go into this in greater depth in part two of this series.

Criticism

While the Facebook Platform has garnered significant attention for the company, there are a number of key criticisms of Facebook's approach. First and foremost, many have criticized the company's decision to employ a "walled garden" strategy. In a walled garden, third-party developers are at the whim of the company that controls the space. For example, third-party application developers' use of data harvested from Facebook is governed by a strict covenant. Furthermore, the development of one-off products for use in a walled garden is often considered an inefficiency, especially as open data formats such as RSS grow increasingly popular.

At the same time, users of the service have found some of the side-effects of the Platform to be particularly burdensome. Chief among complains is the growing "spamminess" of the Facebook interface. Applications are allowed to send email alerts and publish items to the newsfeed, which has generated some clutter in the user experience. To combat this problem, Facebook developers have updated the Platform API to make spamming more difficult, and applications are now awarded a "spamminess" score.

An interesting test of Facebook's commitment to developers emerged recently, as the Audio application was blocked from the platform. Fearing copyright complaints, Facebook chose to remove the audio-sharing application, cutting off its many users. The developer community is closely watching this development for signals of potential future behavior on Facebook's part.

Making Networks Work

In the meantime, it appears that many people are looking beyond the criticisms and are choosing to embrace the Facebook Platform. For those wishing to make a name in the business, or to promote existing applications, the cost of development is often justified. Facebook's network provides entrepreneurs with an unprecedented opportunity to engage in viral information transfer. To that extent, developers are rushing in to take advantage of the "social graph."

Ultimately, there are a number of instructive points entrepreneurs can take from Facebook's strategy. The first is that openness scales; while smaller startups generally provide generous APIs to developers, even major players like Facebook can benefit by harnessing peer production. The second is that development is an ecosystem. Facebook has not attempted to prevent third parties from monetizing on its Platform; this potential will draw investment from developers both large and small. Larger investments in robust, popular products only make Facebook a better space all around, and it is only right that Facebook provides these developers a financial incentive to create. Finally, we see that social networks are providing new and interesting derivative opportunities for developers. For a long time, the mantra has been "niche social networking," but Facebook's twist highlights a new and interesting opportunity, and I wouldn't be surprised if I see other social networks following.

The decision to develop on Facebook's Platform, or any other platform, should be based on your application's needs and potential audience. However, I think many of us are excited about the possibilities of modular social interaction. We may soon see a day where the boundaries of development and APIs grow fuzzy as applications colonize each other, finding ways to best serve our needs. Facebook's Platform is a new and interesting step in that direction, and I look forward to watching its influence and adoption.

Resources