The Internet has always been fundamentally social. Its evolution can be described as a series of advancements that have harnessed the innate power of social activity. First, the Internet itself made computers social by allowing them to talk to each other through standardized network protocols. Second, the web made content social by allowing documents to talk to each other through hyperlinks. Third, APIs made software social by allowing applications to talk to each other through exposed programming interfaces. And finally, social networks made the creators and consumers of web content social by allowing them to find one another and share.
But there is a problem. The problem is the later two stages of the Internet, which we used to more frequently refer to as Web 2.0, arose in a fundamentally different manner than the first two. They arose as a series of protected hubs. Each of these hubs has drawn from the great strength and flexibility of the underlying social networks of the Internet and the web to come into existence. Yet most have only begrudgingly given back by being interoperable with one another when it suits their own purposes. They haven’t been built by academics whose fundamental goals were to improve the human condition through the sharing of knowledge, like that guy at the Olympics opening ceremony. They haven’t been built with government backing to facilitate knowledge transfer between universities and research labs. Instead they’ve been built on venture capital, an industry that seems to have lost its way from its humble beginnings seeking outsized financial returns through investing in radical ideas and new markets to seeking “guaranteed” returns through eyeballs and ad revenue.
Businesses built around controlling eyeballs run fundamentally counter to the nature of social, the nature of the Internet. Social is connecting, sharing, repurposing – the one thing it is not is controlling. But this does not mean successful businesses cannot be built on the web. It means we need to rethink how we build them. David Weinberger, one of the authors of The Cluetrain Manifesto, offers the following in his book Everything is Miscellaneous:
“The commoditization of knowledge enables greater value to be built from it, just as commoditized nails and lumber let us build better family homes for more people. But now more than ever, knowledge’s value will come from the understanding it enables.
And since the commoditization of knowledge includes its easy accessibility, business loses one of its traditional assets. Information may not want to be free, in Stewart Brand’s memorable phrase, but it sure wants to be dirt cheap. The good news for customers is that miscellanized, commoditized knowledge sparks competition and innovation. The good news for businesses is that they can focus on providing the goods and services that are at the heart of their value.”
It is Time for a Social Web OS
It is time for us to take what we’ve learned from years of building and using social software, suss out the common elements, identify the common weaknesses and lay down a new layer of Internet infrastructure designed from the ground up to support a new generation of social services. In programmer speak, it’s time for us to refactor.
This new layer requires three things: standards, frameworks and platforms. Now, everyone has different definitions of these terms so I’ll clarify mine. In this context standards provide agreed upon specifications for how data is defined and structured, frameworks provide methodology for storing, manipulating and distributing data, and platforms provide infrastructure for implementing frameworks.
I may sound crazy, but I firmly believe there is a way to universally model the social web. What I don’t mean is that there is a way for us to define all the fields we could ever possibly want to use in social web applications. What I do mean is that there is plenty enough commonality in the fundamental elements of social web applications that we can define a set of standards and frameworks that are flexible enough to encapsulate any ultimate manifestation while adhering to a core that inherently promotes openness and connectedness.
Why do I believe this is possible? It’s the nature of technology and abstraction – we can see examples everywhere we look. Programming languages enabled us to give instructions to computers in human readable form, rather than ones and zeroes. Operating systems enabled us to build software that could run without worrying about all the intricacies of the hardware running underneath. TCP/IP enabled computers to share data with each other over a network. DNS enabled computers to find each other across the globe. HTTP and HTML gave us a way to reference and retrieve documents across the Internet. The list goes on and on.
Any specific collection of standards, frameworks and platforms will have quirks and deficiencies. But when well thought out their benefits often far outweigh their drawbacks. Imagine, if you will, a world where you don’t have to create a new identity for every web service that you use. Imagine a world where where every new startup didn’t have to reinvent the wheel of how it defines users, how it handles permissions, how it defines content, how it makes that content accessible, how it makes its services compatible with others. If that sounds utterly implausible, I would ask you how implausible it would have sounded just a few years ago to say that soon most startups wouldn’t own or manage their own server infrastructure.
Building Blocks of the Social Web OS
I believe there is a fundamental set of building blocks we can use to develop a new generation of social web applications. I’ll list those building blocks here, and in the future I plan to link to my own or other peoples ideas on how to standardize them, develop a framework for utilizing them and a platform for implementing them.
The building blocks of the Social Web OS are:
- Users
- Groups
- Relationships
- Permissions
- Annotations
- Posts
- Versions
- Events
- Feeds
- Notifications
Going into the details of each of these here would be too lengthy, but I don’t think it takes too much effort to understand what each of these elements represents or how they interoperate. For those who want to build the future of the Internet, standardizing these elements (whether that means de facto standardization or something more “official”) and how they interact is where we should be investing our energy. Building platforms that allow startups to focus on building new networks that utilize and augment these building blocks, rather than reinventing them, will unleash a torrent of innovation.
Facebook, Twitter, Google+, LinkedIn, Flickr, Instagram, Foursquare, WordPress, Drupal, Basecamp, Dropbox, Google Docs, Reddit, Digg. Tell me which of these services cannot be modeled using the above elements. Tell me which of these services would not benefit from avoiding reinventing each of the above components, only adding new logic and fields for whatever they do that is unique. Tell me which of these services would not benefit from being fundamentally interoperable. Seriously, I want to know what I’m missing.