In the very early releases of BuddyPress, most actions that involved entering information were done in the WordPress admin area. With blogging this works really well, you want to focus on writing and there is no need for you to be dazzled by jazzy graphics during that process. With social networking the story is a bit different. You don’t want to have to jump into the WordPress admin area to update your profile or check your messages, then head back to the themed front-facing site to continue browsing the network. All this does is break continuity, and provides a fairly scattered and clumsy user experience.

To alleviate this problem, BuddyPress themes contain template files and functions for displaying and updating information. By doing this, the user never has to jump between two different worlds and they can happily browse through a consistent interface regardless of their task.

By moving this functionality into the theme, we have something new to consider – new feature support and backwards compatibility. In WordPress new features are normally handled within the administration area. This means existing blog themes will usually always work with new WordPress versions, and only occasionally need some new template functions added.

New functionality in BuddyPress will almost always be enabled through theme upgrades. However, our policy will be that existing themes will not break and backwards compatibility will always be assured. As a theme designer it is up to you to decide which BuddyPress features you want to provide support for, and whether you want to support new features introduced in future BuddyPress versions.

With each major BuddyPress version, template functions will be added to provide access to new functionality. With each release we’ll also provide a “template cheat-sheet”, this will show theme designers how to use the new template functions and introduce new features in their themes.

As well as the cheat-sheet, designers can also take a look at the default BuddyPress themes (bundled with every installation) and the skeleton theme that provides a clean base to start from. These themes will always stay up to date with the latest feature set.

If you have any specific questions about theming, please ask them in the comments and I’ll do my best to answer.