Project Outline

Dietrich Moerman edited this page Sep 29, 2012 · 9 revisions

The Project

The UseBB Project is a free Open Source software (FOSS) project. This means the goal of the project is to make free software and relevant resources under an Open Source license. The project consists of people who dedicate their free time to work without any direct reward.

The main goal is to develop a web-based bulletin board package (also known as "discussion board" or "forum software") that can be described as light (by default), effective, usable and extensible: the UseBB forum package.

The project was founded and is still maintained today by Dietrich Moerman. He is currently the only contributor to the project, although several people have contributed patches and small portions of code or graphics in the past years.


The project has its roots in 2002 with the "development" of a small forum package (SBBS) in PHP 4 using the MySQL RDBMS. This small script was primarily written to learn more about web application development and the popular PHP/MySQL combo in particular.

In 2003, as a result of a big interest in forum software, the decision was made to create an Open Source project for this small forum package. UseBB was registered on in October 2003 and the development of a new system written from scratch began in February 2004. In July 2006, many months of discussion, development and beta releases later, version 1.0 was released as a PHP 4 and MySQL based light forum package.

For an overview of important releases, see Prior releases at the website.

UseBB 1.0 (PHP 4)

UseBB 1.0 is a light forum package written in (mostly procedural) PHP 4.3 and using MySQL 3.23+ as the database back-end. The goal of version 1.0 was to deliver an effective discussion board for small to medium sized websites which do not require advanced functionality. The core functionality of UseBB is limited to the pure forum one, missing fairly popular features such as private messages, attachments, user groups, polls e.a. which have become more common in recent versions of bulletin board packages.

In the unfolding of the UseBB 2 project (see below), many flaws and weaknesses in UseBB 1 were discovered. For more information, see UseBB 1 Design Flaws. Initially, much more functionality was planned to be implemented in later minor releases (1.1, 1.2), but the decision was taken to focus on v2 and thus limit the development of the 1.0 code base to bug fix releases (1.0.x), including:

  • security fixes
  • normal bugs and error fixes
  • limited changes in functionality

As of UseBB 1.0.15, only security/bug fixes will be made. UseBB 1.0 will not receive any new functionality, but support for 1.0 will continue at least until a yet to be decided number of months after the release of UseBB 2.0.

UseBB 2 (PHP 5)

IMPORTANT: UseBB 2 got cancelled in October 2012. No further major versions are currently developed or planned. The information below may largely be out of date.

The very first idea was to have UseBB 2 be the bigger version of UseBB 1, while keeping the latter in development. But considering the weaknesses unfolded with UseBB 1 and its generally (especially in current days) lacking quality, the UseBB 2 project was changed to a rewriting/renovating one.

The current goal is to replace the old v1 code base with a new one written in object oriented PHP 5. It also includes a new public development model, website and shift from SVN to Git.

Although being completely rewritten, UseBB 2 tries to retain its simplicity and effectiveness known from UseBB 1, with added flexibility in terms of modular functionality.

A few highlights include (this list is not definitive, changes may occur):

  • Object-oriented PHP 5.3
  • Functionality packed as modules that can be enabled/disabled (#33)
  • Automated testing to ensure working state (#25)
  • PDO based database framework usage with transactions
  • Database powered session system, supporting IPv6 (#34)
  • Extended i18n possibilities: UTF-8, auto-detection, plural forms, ...
  • Cron (scheduling) system (#35)
  • Event log (#56)
  • External authentication (#12)
  • Flexible subforums instead of categories/forums
  • Threaded topics (#36)
  • User groups (#31)
  • Moderation queue (#55)
  • Polls (#1)
  • Private messages (#50)
  • Post attachments (#51)
  • Merge system for converting (#17)
  • Better anti-spam measures
  • ...

A complete and definite feature list is not defined. Features are implemented on the go as their issues are accepted or have been attached to a specific milestone.

Releases To Come

With releases and version numbers, we are going for the proven[.revision] format, where major denotes any big rewrites and incompatible framework changes, minor includes feature additions/changes and build includes bug fixes/improvements. revision might be used for security releases. Without the guarantee of only increasing the major number for incompatible changes and the inclusion of the revision number, this is more or less equal to Semantic Versioning.

The following public releases are expected:

  • 2.0.0 alpha x: completing planned functionality
  • 2.0.0 beta x: functional complete, bug fix/improvement releases
  • 2.0.0 RC x: release candidates
  • 2.0.0: first production release
  • 2.0.x: bug fix/improvement releases
  • 2.x.0: new/changed functionality
  • 3.0.0: rewrites and other incompatible changes


  • It is not yet clear whether security releases (x.y.z.w) will happen. These are releases only containing fixes for the discovered issues against the previous release, without any other bug fixes happened in the mean time. However, patches will be released, and a new bug fix release will be made against current code.
  • Alpha releases will likely only happen after rewrites or big changes in the framework, where big parts of functionality need to be rebuilt. In other words, before changing the major number.
  • Beta and RC releases will not happen for bug fix/improvement releases. It is assumed keeping existing unit tests green and short checks should suffice.

Please see the milestones for a very detailed description of planned releases and their progress.

Upgrading and Converting

Upgrading ("merging") from UseBB 1.0.x will be possible through the Merge System, which will be available in alpha 1.

Several other forum packages will be supported by the release of beta 1. The goal is to support the most important systems and UseBB's competitors so these forums can be converted to UseBB 2.

Other Changes

Other changes in the UseBB 2 project include:

  • New project logo and colours
  • Build new website with built-in UseBB 2 static pages, except
    • End-user docs (Sphinx)
    • API docs (Doxygen)
  • Move development stuff towards GitHub
    • Source code was moved from CVS to SVN in Sep 2010; and now to GitHub
    • Technical info (this wiki)
    • Issues (bugs and requests)
  • Eventual separate systems on
    • Security issue database (own advisories)
    • Resources database

Downloads and mailing lists remain at

Project Cancellation

IMPORTANT: UseBB 2 got cancelled in October 2012. No further major versions are currently developed or planned.

At this time, UseBB 1 is still maintained, despite what has been spread at some websites. This is bug fixing only. Websites can continue running UseBB 1 safely, be it with PHP 4 or 5.