One question that I repeatedly get to hear from users and clients trying to set up private social networks is the ‘which’ part of it. This post is meant to act as a very lightweight guide for that process. We will consider only Elgg, Buddypress and Drupal for this. There are numerous other options available like Dolphin, Ning and Jomsocial, but Ning falls out of the list due to it being a hosted solution and I have little experience with Ning and Dolphin in their current iterations.
The crucial question in selecting one of the many options is whether you know what you actually want? The effectiveness of the solution used can vary wildly depending on how clear you are about what you really want. Some of the solutions are pretty close to plug-and-play. Install them, fill in some data and you are good to go. The others are barebones frameworks, they need a lot of work to be made into a product. Clients also often make the grave error of underestimating the management overheads of running a full fledged social network. Between the technology, product and administration tasks it can easily wind up taking up a lot of your time (and often money too).
Social network frameworks also require much higher specification infrastructure to support it. While you can keep a blog going on a $3-per month shared hosting solution, most of these social networking products will start to become unusable on shared hosting as your user base and concurrent usage starts to climb. In such a scenario, it may be the best idea to go with a Ning or the commercial offering of Elgg, so that you are shielded from the technology parts of the puzzle.
A quick checklist of things that will make your choices easier would run like this:
1. How many users are you looking to support
2. Will it be only free users or paid users or a mix of paid and free?
3. How comfortable are you with managing technology (both coding and infrastructure)
4. Minimum budget
5. Time that you are willing to spend on it
6. What degree of support are you willing to provide users?
Most of the private social networks can be split into three kinds:
1. Solely for communication: You want only the ability for members to sign up and communicate with each other in common threads.
2. Full featured: You want a clone of the features of the bigger networks.
3. Full featured and heavily customized: You want a clone of the bigger networks and also a lot of custom features added on.
In the case of (1), you can easily make do with a Google Groups set up or something similar to that. Anything else is really an overhead that you get little value from. For (2), go with one of the commercial offerings and you will get the best of both worlds. (3) is where most of my work has been and in and thus the longer elaboration on the point.
In using a customized solution you are making a substantial commitment to a platform from which switching won’t be easy or cheap. Each platform has its own strengths and weaknesses, but one thing that is common among all of them is that after a point in the growth curve you have to constantly reevaluate problems you had fixed earlier. A simple example is of a feature that lists all users in a single page. This may work flawlessly when you have hundreds of users, but it will get your site to a crawl when you move into the thousands.
The three solutions under the scanner here – Elgg, Buddypress and Drupal – all take different approaches to producing an outcome largely owing to their respective lineages.
Elgg is a social framework that has a few modules in its out-of-the-box form which enables it to work as a bare-bones product.
Buddypress is based on WordPress and it is now a full fledged plugin on the WordPress platform which is a content publishing engine.
Drupal is a content management framework which has nothing social in it out-of-the-box. It takes a lot of work to get it to be a social networking site. You can read the guide to it here.
The three solutions can be further evaluated under the following heads:
Ease of use (users): Buddypress is the easiest of the three to use since the base framework it uses is WordPress. Elgg comes in second, while Drupal is the hardest to figure out.
Ease of use (site administrators): Buddypress is the easiest again due to the WordPress lineage. Drupal comes second becomes of its superior update notifications and built-in tools to atomically manage users and permissions. Elgg finishes third because of its really clunky administration interface.
Development: Elgg comes in first here because of its origin as a social networking engine. It also has code that is targeted only at PHP5, which means that it carries little bloat from the PHP4 days. It also has the best API of the lot and a well executed views system. Buddypress comes in second because of the simplicity of the WordPress API, but it can quickly become a major limitation if your requirements start of exceed what is provided out-of-the-box by it. Drupal suffers because most of the heavy lifting for the ‘socialization’ of the platform depends on various modules. Customizing these can often be quite complicated.
Platform Maturity: At the core Elgg is the youngest of the three, but it comes up on top again. It is a very well designed and executed platform at its core and its entities system is built to scale well if you can throw the right amount of hardware at it. Drupal comes in second because of the solid core it has been built on top of. Buddypress comes in third because of the core WordPress engine, which is still only a publishing engine and not really a framework.
Flexibility: Drupal comes right on top here because of the dazzling array of modules that it can leverage. There is a module for almost everything you can think of in Drupal. While it is a different matter that it can be a nightmare to integrate them all in a logical manner, the fact is that Drupal does give you the option to pull it off. Elgg comes in second with its well-designed API that allows you to extend it quite well and without too much trouble. Buddypress will be last here because it is tough to get it to do anything that is not there at the core.
It is most tempting to tally these scores and proclaim a winner based on my experiences, but I won’t do that since every social network has requirements that are unique to itself. This is meant more as a guide to help you along the way of making better informed decisions regarding your platform choices.