As you have used social sites such as Facebook, YouTube, or Twitter, you may have noticed features common to many of them. These features distinguish this new generation of social web applications from the less interactive websites that came before them.
A profile lets users describe who they are. It can be as simple as a name and a few vital statistics such as location and age or as elaborate as a complete listing of a user's background, likes, dislikes, and interests. A profile usually includes a photo (often called an avatar) that represents the user throughout the site.
Social sites often let you "friend" or "follow" other users. These relationships define who is in your social network and are often used to control access to content. For example, a user may set the permissions on a photo so that only friends may see it.
Many social sites focus on sharing content; think Flickr, YouTube, or Blogger. People not only share photos, videos, blogs, and files, but they also comment, rate, and recommend.
With all this sharing and commenting, people need a way to keep track of what is important to them. An activity stream that displays the latest activity relevant to a user is one technique. A good example of this is the news feed in Facebook. E-mail notifications are another common method for staying updated on what is happening.
Not only do people form relationships with other users, but they also join groups organized around shared interests or purposes. These groups often mirror the communities that people join outside of the virtual world of the web: alumni groups, sports fans, book clubs, and charities. Social websites enable these groups to form and thrive regardless of the location of the members.
Social interaction on these websites is not limited to commenting and sharing content. Encouraging communication between users is another important attribute—whether in public such as a message board or discussion forum or in private with real-time chat or e-mail-like messaging.
These are the types of features that are expected in today's websites. This expectation has created a demand for frameworks and web applications that provide social functionality. Solutions range from hosted social networking sites from providers such as Ning, to sets of plugins that extend content management systems such as Drupal and WordPress, to full application frameworks focused on social networking such as Elgg. The end result is that it is easier than ever to create custom social networking websites.