Andy Peatling from BuddyPress kicks off Wordcamp 2009 for me. So, what is BuddyPress? In another presentation, Matt Mullenweg, the WordPress founder describes BuddyPress as ‘Facebook in a box’ ideally suited to the creation of niche social networks. Features include in-depth profile pages, a life-stream, messaging, groups, albums, forums, blogs (obviously, given that it’s from the WordPress team).
Andy points out that BuddyPress grew as a collection of plugins for WordPress MU (the multi-author edition of WordPress) that have been rolled into one large one. The advantage here is that you can pick and choose which elements to configure and run, but more on that later.
Why use BuddyPress rather than Ning, Facebook or other available social networks?
A major benefit of BuddyPress is that you get the power and stability of WordPress. It’s also heavily extensible and plays nicely with most of the massive collection of WordPress plugins out there. WordPress is the run-away leader when it comes to open source blog applications and so BuddyPress can leverage the sizable community that exists around WordPress. In some instances you can use existing WordPress plugins right out of the box, eg. LDAP functionality to handle registrations. Other plugins and widgets may require some modification.
Another key feature is BYOTOS. Umm, exactly what is BYOTOS? Bring Your Own Terms Of Service. For instance, Facebook scared many users when it changed its terms of service in February to include the clause whereby they can do anything they want with your content. As you download and install BuddyPress on your own servers, it is really up to you to decide your own terms of service for your community.
Setting up BuddyPress
The first step is to setup WordPress MU, which commonly runs in the LAMP (Linux/Apache/MySQL/PHP) environment. You should ideally use sub-folders for each profile rather than sub-domains.
Next step is to download BuddyPress.
Once installed, each component has it’s own folder so disabling a component is as easy as deleting the relevant folder. The advantage here is that you only configure what you need. Setting up the forum piece which uses BBPress is currently the trickiest part, although this is due to get easier.
You use WordPress themes for blog/content pages. If you are used to running WordPress blogs, you are probably familiar with these themes. Buddypress has its own themes for social pages. You can see an example of this in practice on GigaOm Pro (a community version of Om Malik’s popular technology blog):
You also have the option to enable blog networks, which each have their own distinct theme. This is a key feature that really isn’t really available on most other social network solutions out there.
Note that each component has it’s own theme folder so you only skin what you need to skin (eg. if you just need profiles, just skin those). Knowing which theme file you need to edit for a given page is easy as URLs map to template files:
If you have used WordPress, you are probably familiar with the concept of the ‘loop': the code block that handles the display of each individual post on a page. Buddypress themes use the same ‘loop’ concept, but for more than just blog posts. Output any BuddyPress content by creating custom loops.
BuddyPress ships with a skeleton (vanilla) theme that eases customization.
If you need to build a plugin then check out the ‘skeleton component’ that comes as standard with BuddyPress. This can help you understand the hooks and actions from which the plugin can access BuddyPress functionality. Again, if you have built plugins for WordPress, the concept is the same and should make sense.
There are a number of ready-built plugins you will find on BuddyPress Dev. For instance there’s a plugin to allow users to pull in photos from a Flickr stream.
BuddyPress: the future looks bright
Given that BuddyPress was only launched around Wordcamp this time last year, it’s remarkable to see the rich feature set available today. The team continues to make constant improvement and recently asked the community to vote on features they would most like to see in upcoming releases.
If BuddyPress can capitalize on the considerable community and large popularity of WordPress, this really could become a major player in the social network solution space.
Follow Andy Peatling on Twitter.