SitePoint bbPress Theme Community Project

ryan hellyerThis is a guest blog post written by Ryan Hellyer, who operates PixoPoint.com. While you’re there, check out his WordPress Menu Plugin

I’m involved with the development of a new bbPress theme. This in itself would not normally be particularly interesting, people develop new themes for forums all the time. However this is a theme with a difference!

My first forway into theming for bbPress was during an episode of WordPress Weekly when Jeff Chandler said that bbPress was not up to scratch for use as the WP Tavern forum software. He cited the shear number of plugins that needed to be installed to achieve very basic functionality as reason for not using it. As a proof of concept, I installed plugins which were capable of achieving almost all of the functionality Jeff asked for during the hour long show. However, even though these plugins were capable of adding the functionality required and were very easy to implement, they often didn’t do it in a fashion suitable for all themes. For users to style their forum the way they wanted it to, they would need to have modified those core plugins and in turn prevent them from being upgradeable.

Later on I messed around with building a template generator for bbPress. I didn’t have time to build a custom theme from scratch, so I simply modified the default Kakumei theme which came with bbPress. Unfortunately the Kakumei theme uses some odd-ball coding techniques which did not gel well with my own code. I needed a theme which was coded to modern standards and without using strange positioning methods to place things onto the screen. I hacked at the code I was using, but even now the themes exported from the bbPress template generator contain many annoying coding bugs.

What did become apparent to me at the time though, was that bbPress was actually more powerful for the average developer than any other forum software out there. If any of you have ever tried coding a new forum theme from scratch you will be able to testify to the fact that they are almost always extraordinarily difficult to work with. In fact they are so complicated that most forum softwares never have any custom themes made for them, they are almost always knock off’s of the default theme. bbPress on the other hand is a dream to work with. The number of template files is low and the ones provided with Kakumei are fairly well laid out and so are easy to find your way around.

I seriously contemplated building a custom bbPress theme, but after taking a serious look at the way that WordPress itself is developing into the most popular web based software of all time, I decided that the best approach to changing the way that themes are built would be to use the same approach used by bbPress’s cousin WordPress. With WordPress, there is a bustling industry of themers churning out designs, new code, new techniques etc. all of the time. WordPress themers across the world are constantly borrowing code from one another in an attempt to stay ahead of the race to create the best theme around.

The competitive themeing industry that WordPress has is not present in any forum software. Creating this sort of competition myself would be impossible as all I could do is to compete with myself (pointless). So after some thought, I decided that the best approach to tackle this problem head on is to create a community of developers who can contribute back to a single theme project each in a small way. Experts from there respective areas will be able to contribute to the areas of themeing which they are best at – HTML/CSS coders can handle the markup/CSS, programmers can handle any custom PHP, javascript experts can handle writing any client side coding used and graphic designers and usability/accessibility experts can contribute to the overall design. This way, although there is no competition necessarily, each section will be contributed to by experts in that particular area of development.

We are running the project over at SitePoint.com where the SitePoint staff (including myself) are organizing a community wide development of the new theme. At this stage the community are working out the basic wireframe/UI side of things before moving on to the design and coding of the theme. If you would like to be involved, please sign up at SitePoint and join in the conversation, we are very keen to get as much input as possible on the new project.

I don’t know of any projects which have been organized in a similar fashion to this. It may not work as expected, but it should be a fun learning experience none the less. I look forward to seeing your input over at SitePoint :)

More information is available in the “SitePoint bbPress theme community project Announcement Post“.

9 Comments


  1. Cool project Ryan, there is a real need for more quality bbPress themes!

    I’ve tweaked Kakumei to match a few WordPress themes so far, and I’m currently working on my first original bbPress theme.

    When it comes to including plugin functionality themes, I’m on the fence. I like to keep themes simple and not have important functionality dependent on the functionality.

    It seems like redundant code anyways, why redo the code for some feature, or roll it into the theme if it already exists as a plugin? Particularly for bbPress where there are not that many plugins, it seems like that effort would be better put into new plugins, or updating plugins that don’t work properly with 1.0 yet.

    I can understand how you’d want to be able to include more of these features in one package. But it seems like a bit of a hack to me. Some of these features should make it into core eventually no matter how lightweight they want to keep bbPress. I think rather than themes with plugin functionality, I’d rather see more comprehensive plugins that can replace 4 or 5 smaller plugins. Like Nightgunner5’s excellent bbPress Moderation Suite.

    Myself, I am trying to build my bbPress theme to work with existing plugins better. So that if you install the bbcode button plugin, or signatures, it styles them to fit into the theme, but without being dependent on them.

    You’ve started an ambitious project though! I’m definitely interested to see what you come up with, and if I can contribute anything that I learn from building my own theme, I’d be happy to pitch in.

    Report


  2. The problem for me with bbPress themes, is that they are totally different than WordPress themes. So, it’s not like you can just which from blogging software (WordPress) to forum software (bbPress) and create themes for each. I’ve looked into developing bbPress themes, and it doesn’t appear to be any more difficult, rather just different and less motivating (due to being less popular).

    While I think it’s a good idea to develop a bbPress in a theme community. I think having it as a replacement for theme competitiveness is misplaced, that is, if I didn’t misunderstand you. I think there a quite a few WordPress theme developers, that would like to develop bbPress themes, but haven’t found the time (myself included). This looks like the chicken or the egg problem. bbPress needs to be popular to attract developers, but people aren’t going to come if bbPress and bbPress theme aren’t developed. I think bbPress will pick up speed in several months. Hopefully your project gets a bbPress theme out the door, then bbPress will be that much more attractable.

    Report


  3. When it comes to including plugin functionality themes, I’m on the fence. I like to keep themes simple and not have important functionality dependent on the functionality.

    The problem with that approach, is that you often need to modify the theme to accomodate the plugin in a suitable manner. Many plugins add styling information to the site, and you really need that to be styled by the theme, not via the plugin, or else the plugin itself will require some sort of theming system which is likely to be a pain in the neck.

    There are also features which are required by pretty much every single forum but are not available by default within bbPress.

    And then there are features which are currently available as plugins, but IMO (and pretty much every other forum software out there) tend to include with the theme. Things like quick-quotes, forum stats and various bits of javascript spring to mind. I don’t know of any bbPress themes which include this sort of stuff, despite it being the sort of thing typically included in a forum theme.

    The other reasoning behind it is that people don’t want to risk uploading 15+ plugins just to get their forum running. Every plugin is a risk, and at least with a theme, you only need to rely on that theme being maintained. However if a plugin developer stops working on their plugin you are screwed.

    Having said all this, removing the functionality would be a piece of cake, it would juts be a matter of ripping out a bunch of folders and a single line of code in the theme. The functionality will sit on top of the theme as an added extra, it will still operate without it. Since the sort of people helping with the design side of things are likely to know nothing about PHP and vice versa, it shouldn’t result in our volunteers being spread too thing across the project.

    Here’s the launch post for the functionality side of the project:
    http://www.sitepoint.com/forums/showthread.php?p=4338063

    Report


  4. Darn, ran out of time to edit my comment above!

    I was going to mention that lots of very specific plugin-like functionality should not be included in the theme. I’ve mentioned Captcha’s a few times recently as some people have been complaining that bbPress does not provide them by default, but personally I see that as very much plugin material, not suitable for a theme.

    However, if some functionalities such as forum signatures are not included in the default bbPress installation then I wouldn’t mind that being included in the theme. It’s a little weird, but it is ‘sort of’ theme related in that it is something which is displayed on almost every page of the forum.

    When we were discussing it behind closed doors, we decided that adding certain ‘standard forum functionalities’ would be a good idea to make it as easy as possible for someone to get their forum up and running. Personally I’m not a big fan of having to install a whole suite of plugins on EVERY site I launch. With WordPress I rarely need to install any plugins, it has everything I require straight out of the box and many themes (particularly the ‘theme frameworks’ and commercial themes) include a certain amount of plugin-like functionality in them too which reduces the need for plugins.

    Also, there is a fine line between a plugin and a theme in both bbPress and WordPress. A theme is really just a specific type of plugin.

    Report


  5. I think rather than themes with plugin functionality, I’d rather see more comprehensive plugins that can replace 4 or 5 smaller plugins. Like Nightgunner5’s excellent bbPress Moderation Suite.

    We could do that instead I suppose. We could release a plugin which is provided as a complementary extension for the theme.

    Report


  6. The thing that annoys me about the default bbpress theme is that the whole header is an image. Talk about making it hard for people to customize etc

    Report


  7. I can’t see how the header being an image makes it difficult to customise. Should just be a matter of removing the background image to make it not an image anymore.

    Report


  8. @Ryan

    The problem with that approach, is that you often need to modify the theme to accomodate the plugin in a suitable manner. Many plugins add styling information to the site, and you really need that to be styled by the theme, not via the plugin, or else the plugin itself will require some sort of theming system which is likely to be a pain in the neck.

    Yeah, I have ran into this problem of trying to over-ride with some bbPress plugins. I wish that these plugins were left a little more open to the theme’s styles. I am going to try to support as many popular plugins as I can with my theme’s style, but I suppose you have to cut your losses somewhere.

    It is fine line, I agree that AJAX features would be a good candidate for inclusion in the theme. For functionality that actually adds content, like signatures, I could see some users being upset if they switched themes and “lost” that content. I guess they could keep the sigs by tweaking the new theme, but using a plugin seems more self-contained.

    We could release a plugin which is provided as a complementary extension for the theme.

    That would be cool, even just sharing the extra functionality that you add to the theme as a plugin suite for people that would like to use it on other themes would be well received I am sure!

    Report


  9. This sounds like a great project. I hope that what comes out of it is an excellent piece of work that can be considered for inclusion into bbPress core or, just become a really good foundation for bbPress theme building.

    Report

Comments are closed.