For those that don’t know, BuddyPress is a plugin (or more accurately a suite of about 12 plugins) for WordPress MU (Multi-user) that turns it into a social network. My first thought when I heard about BuddyPress was “neat” immediately followed by “why?” I doubt I’m the only one that was thinking this. I mean, there’s already MySpace, FaceBook, etc right? What exactly does BuddyPress do that these don’t? The conclusion I came to after listening to Andy Peatling today was “BuddyPress doesn’t do that much more, but it’s definitely useful and overall it’s an amazing project”.
First, why should you use BuddyPress rather than building on an existing service? Andy pointed out that BuddyPress allows you to BYOTOS (Bring Your Own Terms Of Service), which means you’re not vulnerable to the whims of the terms of service of some other site, which could change at the least opportune time. Additionally, BuddyPress is built on WordPress, which gives you the stability that has come with years of development. It’s also open source and better yet GPL, which means that in the absolute worst case scenario you could fork the project and continue to use it. Lastly, BuddyPress piggybacks itself on the WordPress community which is huge and helpful.
Once I saw why it was useful, I wondered where it should be used. It seems to me that it’s really for niche networks. Do you have a sports team that wants to share with each other and maybe fans as well? Use BuddyPress. Are you involved with a school? Use BuddyPress to allow all your students and staff to interact easily. Any small to medium sized group of people with shared interests would be a great place to use BuddyPress.
So enough about where and why, what’s it like? Installation is simple, but not exactly “one click simple”. You can install the plugin itself using the plugin browser in WordPress admin, but then you need to copy some theme files to their correct place. If you know how to use an FTP client, installation will be easy. Additionally it can work with BBPress Forums, but the install is currently somewhat complex. Andy assured us that in the future the BBPress install will improve.
However, the install didn’t worry me. What I really wanted to know as a developer is how BuddyPress was to extend and customize. The answer is, if you’ve been working with WordPress it’s extremely simple. It uses the same methods (actions and filters) as WordPress for extensibility. As a matter of fact, many existing WordPress plugins and widgets work on BuddyPress with no modification at all.
Theming also follows the same basic practices as any other WordPress theme but uses two themes in parallel (a WordPRess theme and a BuddyPress theme for profiles). Template files themselves are neatly ordered into directories to make them easy to find, and BuddyPress uses all clean URLs by default (which map almost exactly to the file you need to edit). Buddy Press themes use “The Loop” as you’re used to seeing in WordPress theme, but they use them for more than just posts. You can list users, groups, friends, comments, and much more! It even includes simple pagination functions to allow you to easily break content into pages.
While I was excited yet skeptical at the beginning, after watching Andy’s presentation I’m just looking forward to a good excuse to do a project using BuddyPress. It looks powerful, flexible, and simple. If you’re interested in seeing Andy’s presentation, I’m told that it should be up on WordPress.tv in the near future.