Drupal and the Future of Social Networking

Mon, Aug 10, 2009 - 7:18pm -- Isaac Sukin

The social networking scene has been evolving over the last few years. Today, Facebook's 250 million users demonstrate beyond doubt that social networking is an important movement, and one that Drupal should pay special attention to as it evolves. But social networks are a different animal than conventional websites, and one must understand the differences in order to build a successful social network.

More than any other kind of website, social networks rest on the concept, "if you build it, they will come." This presents something of a dilemma for the developer because the focus of a social network is not on the website itself or the tools that it provides. Instead, the focus for each of the site's users is on the other users: the relationships and social hierarchies, and the result of users' attempts to express themselves. That is, it is the result of using the site rather than the actual usage of the site that is important. People don't go to Facebook to interact with Facebook—they go there to interact with friends and colleagues. This principle somewhat applies to websites whose goal is to sell or promote something as well, but the difference is that those websites establish a relationship between the website (the seller) and the user (the client) whereas in a social network the relationships built are between two users. The user-user relationship represents a certain loss of control on the part of the developer as to how the site will be used. It introduces an element of unpredictability where you might find that people are using your site in ways you never expected. On the bright side, the fact that the website itself is less important than the people using it means that there is some room for experimentation in terms of how the experience of developing online user-user relationships is delivered.

Having said that, the first rule of social network development is to know what the users want, or at least what they think they want, and to get their feedback as often as possible without being intrusive. Almost always this means keeping (and analyzing!) statistics on page views, paths users take through the site, and how long they spend on each page. It also means using surveys or simple feedback mechanisms or just like/dislike buttons. (In Drupal, this kind of thing can be accomplished with modules like Google Analytics, Feedback 2.0, and Flag.) Listen to the wisdom of the crowd, and let users participate in site decisions—but don't let your veterans' resistance to change hold you back from innovations that will attract new audiences without driving away your core user base.

So what can a developer do to improve the experience of user interaction and make their website Fun?

Today, we live in a web where users visit different websites to do different tasks: to publish different kinds of content in different ways, often with different communities. However, there has long been a slowly growing movement for consolidation. This movement was first expressed in the form of RSS, the very name of which ("Really Simple Syndication") indicates the idea that RSS would allow "feeds" or "streams" of content to be aggregated in a single location. This eliminated the necessity of visiting dozens of sites every day to read their different kinds of content, although it worked best with longer, text-based content like news and blogs. However, website developers could no longer control the presentation of their content, or in most cases gather the feedback and statistics necessary to improve their sites in a way that would make users want to return. As a result, most websites now publish only titles and "teasers" in their RSS feeds in an attempt to get readers to return to the website to read the full article. This is a workable compromise in many cases, but neither side gets everything they want.

(As an aside—interestingly, part of the appeal of Microsoft's new search engine Bing is that it takes the world of searching into this realm by exposing more of the underlying content than, say, Google does. However, it still takes away the web developer's control over how the content is presented.)

Then FriendFeed and others appeared on the scene to take advantage of a new kind of stream outputted by action-based sites like Facebook and Delicious (in many cases leveraging emerging technologies like JSON and SOAP). These new feeds recorded events rather than essays, action rather than thought. That was the beginning of the transition to the "now" web, where interaction with one website can be listed in another—although the result of that action remains at the original location, and rarely do websites truly react to each other as much as they listen. That was consolidation, but it consolidated fragments of action without the thought or experience associated with it.

So it seems fairly clear: the future of social networking will be in what I like to call a "unity of experience." That means that users will be able to seamlessly have complete discussions in one location without having to worry about different kinds of content. It means that users will be able to focus on interacting with each other instead of configuring options through the website interface. It means that the lines between action here and action there will become blurred into action everywhere.

What needs to happen is to make different kinds of content seem indistinguishable while still maintaining the flexibility that different content types allow. Content should be written in a uniform manner and the website should take the burden of figuring out how to present it appropriately. Websites will no longer have blogs and forums and comments and articles, but instead they will have posts and discussions—similar to forum threads, but without the structure or content limitations that forums inherently require. Luckily, Drupal's greatest strength is its flexibility, so it's the presentation layer rather than the ability to handle different content types that needs focus here.

What I envision is a master stream. Not a stream of action across the web, nor a stream of expansive blog entries, but of both—blended and mixed and remixed into a unity of experience so that posting images to one previously text-based discussion is as easy and fluid as commenting on a video; even more, so that those things seem the same, so that both of those things can occur side-by-side in the same section of the site—in the only section of the site. Because it's not about how or why the content is posted, it's about users' reactions to the content. Your users want to interact with each other; they don't want to have to think about which interface would be most appropriate for expressing themselves. Your site should do that for them.

I have been slowly building to that point in Drupal, first with the Facebook-style Statuses module (which takes strings of arbitrary length and allows interpersonal discussions) and more recently with the Application Toolbar module (also modeled after Facebook's, with the goal of instantly alerting users of new discussions, actions, thoughts, and reactions of interest to them). FBSS is stable and has been for some time, although there are still some minor fixes and features I want to add to it; Appbar is still under heavy development but is just beginning to mature. My goal once these modules are rock-solid is to move towards a Facebook-style Publisher (which automatically recognizes when links, images, and more are written in it) and united news stream (i.e. one with comments, nodes, and other content mixed together, as the Activity module begins to allow)—not with the intent of mimicking Facebook exactly, but rather in search of the ultimate united experience where users no longer have to think about what it is they're actually doing on the site. I am rebuilding BabelUp as well and my goal is to stretch Drupal as much as possible to realize the vision I have laid out. I think it can be done in Drupal; all it takes is creativity.