From Software Development Perspective – as one starts gaining the experience of building up few social networking-based applications – we would all realize that there are certain common reusable building blocks which are common across many of them. While the core configuration and its presentation may vary from application to application, from an engineering components perspective they tend to remain same or similar across all Social Networking Applications.
We did an exhaustive study of various applications catering to Social Networks. Here are some of the common building blocks which we could find common in almost all.
- User & Profile Management System – From the backend perspective, all Social Networks are all about this. Managing users and their profiles and their choices! Investing in proper design for this at the initial stages would take a Social Networking application a long way.
- Content Management System – Surprisingly, from what I have seen and read, significant number of Social Networking applications seem to have somehow skipped on this. IMO, this is the key to remove the data from the presentation layer. It also forces the application provider to start thinking of their data in a structured manner.
- User Session Management Service – One of the key for Social Networks is to be in touch and know their users. To do this the application needs to have a functionality to keep track of user’s activity across various sessions of interaction.
- Discussion Forums/Message Boards/Blogs – The way you expect HBO to be there when you check in a hotel room, users expect this in any application associated with Social Networks.
- Streaming Media – Streaming is what keeps the social networks ‘live’. And content comes today in different forms and shapes. Hence the need for this functionality.
- Viral Spread Mechanisms – Related to Viral Marketing. This is related to any mechanism which replicates the ‘word-of-the-mouth’ spread on the internet.
- Ratings Engine/User Ratings – Almost all social networking applications put in measures to continuously rate various users, content, actions, etc. For example, YouTube allows its users to rate its users and also the content i.e. videos along various different scales. These ratings can be driven by the user community themselves or through certain actions of the users.
- Personal Social Groups/Groups Management – In theory, the overall social network implemented by the application itself stands for a group or a community. However, even within a communities, people like to create mini or sub-communities and also want to part of various different sub-communities. This feature is to implement the same.
- Integrations with Multiple Third Party Feeds Services – Almost all the social networks today supplement their own existing content by providing a feed for information from various different channels. News feeds associated with weather from a third party content provider is a good example of this. Such services enhances the overall user experience and at the same time in some sense tends to increase the stickiness of the users.
- Feedback and Contact Mechanisms – A minor thing. The key idea here is to provide mechanisms wherein the user feedback about any aspect of the application can be continuously captured.
- Search Services – Must have. Better the search capabilities a social networking application has – better are the chances that the users on the same application connect with each other and the content.
- Personal Favorites List/Watch Lists Tracking Mechanisms – Users would typically have choices or preferences. Something which they would like to keep re-visiting as often as possible. This feature is to implement that functionality.
- RSS Feeds/Trackbacks/Notifications/Alerts (Emails/SMS, etc.) Services – People do have life outside the social networking application! So one should not expect that they are not going to be in touch with the application 24 x 7. However, many certainly do like to be in touch in some way with the application even when they are away – by getting updates, notifications on any particular actions, etc. There are many different ways to do this today.
- Integrations with other Social Networks – There is a growing realization amongst almost all of the social networks today that users are going to be part of various other communities or networks – for various different reasons. This feature would help users to interconnect their favorite communities with each other.
- Social Networks News Feeds – While point no. 9 above was more related to data associated with external feeds, there is always a need even within the community/social network for providing users an information feed associated with what others in the community are upto. This feature is meant for the same.
I am sure we must have missed out few more of the building blocks. Would love if anyone points them out.