For a user, the Internet is just a dynamic application. All of the websites and apps and everything else add up to the same abstract features that are present in any desktop app:
- Store/read data
- Query for data
- Write/edit data
That’s a useful conceptual framework for planning a successful startup in today’s internet.
The 3 pieces of the Internet experience
The dynamicism derives from the constellation of websites that any specific person uses, but the person is still just entering URLs, reading text, clicking buttons, and entering data. Websites provide roughly 3 experience types:
(This is probably familiar lingo for social networking geeks.)
To map those 3 experiences to a high-level software architecture:
- Nodes are data in the database, the raw “thought stuff”
- Connections are relational tables and queries, the data organization and logic
- Context is the application layer, the tool that says “we’ll use these nodes and connections to buy airplane tickets, so we’ll need to read and write in the following ways”
A rough history of the Internet seems to show that important startups are progressing from Nodes to Connections, which leads me to think that the future interesting startups will either make better attempts at owning the whole architecture or will find sophisticated approaches to the Context experience.
- Early websites focused on content (Nodes), with hyperlinks solving the Connections problem.
- Portal sites (Yahoo!, DMOZ) try to organize the content, thereby “owning” the Nodes by creating a map of all of the data. They’re not scalable. Search wins by providing access to any Node the user desires. Web rings are an interesting sidenote in the Node race, as they allow site owners to associate their data with each other and collaboratively increase exposure of their Nodes.
- Web 2.0 is about Connections. Social networks evolved nodes from encyclopedic data to social data, and now there is a lot more data in toto that it becomes far more valuable when interconnected. Standards are a critical sidenote in facilitating Connections. XML was interesting but not standardized enough. RSS, oauth, hcard, and microformats create a flurry of experimentation, first as mashups (connected nodes), then widgets (encapsulated, decontextualized nodes), then apps (widgets that connect nodes within standardized contexts, whether Facebook or Open Social). Social networking is all about connecting a user’s data (nodes) with related nodes – LinkedIn, Friend Feeds, Twitter, etc.
So what about Context? Facebook began as a narrow Context play (college students), created a popular standard for Nodes (profiles) and Connections (friend feeds and app APIs). Nowadays, they nearly own Connections the way Google owns nodes. It’s interesting to me to see FriendFeed try to compete there and own Connections by aggregating them (a Connection portal? Is this what Imeem is?).
Facebook is also abstracting their Context so they can own that, too, and become the de facto context for all Nodes and Connections.
I think startups succeed really well when they create an abstracted tool within one of these three experience types:
- Google (Access to nodes)
- Yahoo (Node filtering)
- YouTube, Flickr, Photobucket (Node hosting)
- MySpace, Facebook (Nodes and Connections – Myspace is more the former, Facebook is more the latter)
- Twitter and AIM (Connections to people Nodes)
Being an app container means Facebook is basically saying “we control the primary Nodes (people), and the Connection standard. We’ll allow you to plug your secondary Nodes (favorite albums) into our Connections and also create secondary Connections (other people who like El Ten Eleven) atop our standards.” Doing so allows Facebook to create a popular Context for the user experience (interacting with other people, which is very popular right now). Facebook is trying to abstract the context by reaching beyond college students but I think they’re hitting a conceptual wall – Facebook’s core context is still messaging and keeping tabs on people.
I think there are a couple ways to succeed in this framework, at this time:
- Build a better connection solution. I think the nodes problem is mostly solved, so now it’s interesting to try to connect those nodes. I think FriendFeed has the biggest potential here because it can theoretically play with any node (due to the popularity of RSS) whereas Facebook is trying to own Nodes and Connections, putting them in conflict with other Node hosts.
- Solve context problems. I think Meetup could improve vastly if they allowed:
- Registration via OpenId and oauth.
- Full integration with Flickr, YouTube, WetPaint, vBulletin, etc.
- Integration (rather than competition) with other event services: Evite, Eventful, Upcoming, etc.
In this way, Meetup would defer the first 2 experience layers to point solutions and instead provide a contextual container for using them, like an app that could pull from many databases and mash up functionality from other apps. In that way, Meetup would become the best context for social gatherings, in the same way that Friend Feed is a connection(al?) container for all kinds of media and message Nodes.
I think #2 is the most compelling case today. People are solving context in specific ways, but I don’t think it’s paradoxical to try to create an abstracted solution for specific contexts (as opposed to a very broad context, a la Facebook).
How to fail, in this model
Trying to solve a problem at one experience level without dealing with the tier(s) below.
I think this is most commonly seen with niche social networks. What’s the point of creating a SN for stickball players if they have to create a whole new account? You won’t get enough nodes to make the connections valuable, so the context won’t exist. It’s like creating a ticketing system that can only book Delta flights out of Des Moine. Yes, it’s useful to business travelers in Des Moine that have a ton of Delta Sky Miles, but that’s probably not going to lead to your billion dollar IPO/buyout.
I think this also happens when web sites try to “own” all 3 experience levels within a walled garden – it expects Context to be so compelling that users will ignore the weakness of the lower 2 levels on 2 levels: they aren’t as sophisticated as specialist point solutions and the user is restricted to a subset of all of the Nodes and Connections that might be relevant to the Context.
So a lot of this is an argument for the business value of integrating feeds, widgets, and external APIs into a startup (and providing all of these tools for other sites, so they’ll resell your features and data). I have a blue-sky concept of a permeable SN framework called Buhnilla. The goal would be to put as little data or application logic in Buhnilla as possible, just push it all out to point solutions (e.g. users can’t upload photos but they can display galleries of their Flickr photos, filtered by tags; users can’t create profiles but they can use oauth to log in and show their Plaxo and LinkeIn data). If Buhnilla were a Facebook and Open Social container it would be even more powerful, because it would then basically become a merchant for Nodes and Connections. Open source Buhnilla and people could shape it to any Context they desired.