Project
See the project on SourceForge for more information
The MyCustomBB project has evolved a great deal since my initial vision in mid-2006. The project was originally going to be a modification system for the phpBB bulletin board system to help solve the problem of so many clients asking me for such basic modifications. It was a simple project - all it would do is make code modifications and allow them to download it. However, as I thought more about the project, it seemed like a bad idea. Because I had so many changes in mind, it would be much easier (and more efficient) to simply develop an entirely new bulletin board system.
And so MyCustomBB was born. Once a code name, I’ve decided to keep it. It seems fitting for an open source project. However, it wasn’t always going to be open-source. At first, it was going to be a commercial project to compete with the major competitors such as vBulletin and InvisionBoard. I then decided to make the core open source, because I always wanted to give back to the community that I became so attached to. But that wasn’t enough. Therefore, I decided to go completely open source with the project, modules and all. Therefore you will have all the features you get with the other major bulletin board systems and more free of charge. (For larger businesses that would prefer a bulletin board system with support and additional modules that better suit a business / corporation, a professional version will also be available later on.)
Free Software
MyCustomBB is an open source project distributed under the GNU General Public License. For those who are not familiar with open source or the GPL, this means that the software free. The term “free” refers to the freedom to use, distribute and modify the code as you would like without any restrictions. When downloading MyCustomBB, you are free to use and modify the code in any way you’d like to suit your need per the GPL.
Though the GPL does not prevent developers from charging for their software, MyCustomBB will be 100% free. You will be able to freely download and use the software free of charge, no strings attached. Why do this? Well, I have a passion for communities. Charging for the software will only hinder their development. Charging for the bulletin board system greatly limits your audience. Hobbyists and small communities don’t want to pay for their bulletin board systems, and I don’t want to charge them for it.
In order to support the development of MyCustomBB, additional features (modules) may be released for a fee, as well as services and alternate distribution methods.
Speed
A couple have commented on (and I know more are thinking it) how MyCustomBB will become bloated will all the features and run slowly. That will not be the case. The system is designed in such a way that only what is needed at any one moment is loaded and everything is optimized for speed and to keep the CPU usage down. MyCustomBB will not make its final release until, with every module loaded, it outperforms other major bulletin board systems.
Fully Customizable
MyCustomBB’s single greatest goal is to address the problem of customizing your bulletin board system. Sure, there MODs you can apply to the bulletin boards, but that involves editing the code. Inexperienced users either can not do that, or don’t want to risk harming their bulletin board in the process.
MyCustomBB solves this problem in two ways:
- Every system is designed to be completely customizable. For example, the template system allows you to place certain sections of the website wherever you would like via the administration panel, eliminating the need to manually edit the template. MyCustomBB will allow you to edit as many options for your bulletin board system as possible without touching the code.
- There will be times where you can’t quite modify the bulletin board the way you’d like, or want to add entirely new features. That’s where the module system comes in (see below). This system will be flexible enough that you should never have to touch the core code. All you will have to do is upload the module into the specified directory (folder) and it will be automatically installed.
Module System
The module system enforces the “custom” in MyCustomBB by providing a more sophisticated system in the event that the built-in customization features are not enough. This will most likely be the case when you want to add entirely new features, or modify the functionality of a current one.
For example, let’s say you are a developer and want to modify a feature to meet the specific needs of your website. Using the module system’s API, that won’t be a problem. The API gives you access to bulletin board events, such as user logins, posting, profile updates, etc, and allows you to manipulate the data, or even stop it, before it’s updated in the database. A number of objects are also available to you to assist the process of creating the module, such as the template system, user object, and more. The API also, in conjunction with the template system, even allow you to modify specific elements on a web page.
Modules are as easy to install as they are to create. All you must do is upload the module into the specified directory (depending on the type of module, which include administration, template modifiers, and global modules), and it will be automatically loaded. However, it will be disabled for security purposes until you verify that you want the module installed via the administration panel. MyCustomBB will also warn you of any potential threats the module may pose, such as an ability to delete information from the database.
Extensive Security and Logging
MyCustomBB provides a great deal of security options, from login systems to database encryption. Most users will not have use for many of the major security features such as database encryption, as it will slow down the bulletin board system considerably. However, many of the other security features are necessary for many bulletin board systems.
- Spam Prevention - Image verification systems and a spam database will help to prevent bots and limit spam to your bulletin board.
- Advanced Permissions System - The permissions system, accessible via the administration panel, will allow you to control permissions to virtually every aspect of the bulletin board system. You will be able to set permissions for groups as well as individuals for each forum, posting options, pages, administration panels, features, and much more.
- User Registrations - For those who prefer user registrations, you may limit your board to registered users and greatly limit spam. Image verification systems will prevent bots from registering at your forums.
- Password Encryption - Enabled by default, this prevents hackers from retrieving user passwords in the event your database is compromised. Though you have the option of not encrypting passwords, it is highly recommended that they be encrypted as both a way to ensure trust in your members, and a security measure. Encryption options include MD5, SHA1, bluefish, and many others.
- Secure Code - Every precaution has been taken in the development of MyCustomBB to prevent hackers from altering your bulletin board in any way though MySql injections, avoiding security systems, etc. MyCustomBB also does the best to automate this task to limit mistakes in future code and modules.
Logging is very comprehensive and every log can be enabled or disabled by the administrator. By default, only error logs and common events are enabled (such as user logins). Administrators may specify certain events to log, and may easily browse all logs via the administration panel. This allows for easy identification of errors and security breaches. Old logs are automatically zipped and optionally uploaded to a remote server for storage in order to free up space on the local disk.
Server & Client
Most bulletin board systems are clients - that is, they provide a web interface for users to interact, but do not provide much of a backend for other services to interact with the website itself for retrieving and posting information. MyCustomBB, in the spirit of encouraging the spread of information (though this feature can be disabled), is designed to be easily read by other services. Pages will be served in XML (using XSLT), therefore any service can easily read the XML.
What does this mean? When you, the user, view a page (let’s say the forum index) in your browser, you will see it as any other normal webpage. However, this is only because the data is being formatted in accordance with certain styling rules that convert it to HTML. Other services can ignore this style and parse only the XML. So you can easily browse the forums using your web browser, but another service browsing that exact same page (using the exact same URL) can easily retrieve that data without having to strip away the HTML and unnecessary styling.
MyCustomBB also makes heavy use of AJAX (for users who wish to take advantage of this feature). The AJAX requests expect XML as the responses. Therefore, if HTML were used, a separate system would have to be developed in order to serve the AJAX requests (since stripping the HTML from the request is unacceptable and inefficient). While developing a separate system is often done, it is not necessary. Serving the web pages as XML would solve this problem. AJAX would be able to be added to any page without any problems. The only additional development required would be the ability to retrieve sections of pages (i.e., don’t return the header and footer, just the forum listing).
Note: This feature is still being thought up. It is not 100% certain that it will go through - everything will be considered first. However, most signs point to yes.
“Smart” System
MyCustomBB is designed to recognize and repair common errors automatically, drastically reducing the need for tech support. As MyCustomBB becomes more widely used and more errors are discovered, the error system will be updated to fix those as well. For errors that are recognized and cannot be automatically fixed, MyCustomBB will provide you with detailed instructions on how to resolve the problem. If the error is not recognized, detailed error logs can be submitted anonymously to the development team.
MyCustomBB also detects performance degradation and optimizes the system per administrative options. When you first install MyCustomBB, the system runs a series of tests to determine the speed of your server, which will be used later for comparison. It also takes into account server loads, and will notify you if something other than MyCustomBB is causing the slow server speeds. By default, board optimization is disabled and administrators are only warned of performance degradation. Note that database optimization is enabled by default which periodically checks the database for errors, makes repairs, optimizes, checks for redundant and left-over data, etc. There are also options which you may enable that can automatically disable non-essential features, halt user registrations, or even limit traffic to your bulletin board.
Member Profiles
Members make up your community - they’re the driving force behind it. Therefore, they should be respected and paid attention to. Though all of the following options may be disabled, user profiles are a major focus for MyCustomBB.
- User Bio - An area where users may enter some information about themselves. The length of this field is configurable via the administration panel.
- Custom Profile Fields - You may add additional profile fields via the administration panel. For example, if you have a pet community, you may add a field prompting what the user’s favorite pet is. You can configure field type, length, as well as make it optional or required.
- Blogs - Users will have access to their own blogs. Post limits and other features of the blog will be configurable via the administration panel.
- Photo Gallery - If you have the space to spare, you can enable a photo gallery for your users. Photo limits can be configured via the administration panel.
- Friends List - A friends list will allow users to keep tracks of their friends, send them PMs, and see when they’re online.
- …and much much more.
AJAX Support
Much of MyCustomBB will be centered around AJAX for those who have JavaScript enabled. If they don’t - not a problem. MyCustomBB provides support for users without JavaScript enabled as well. Those with JavaScript will enjoy features such as the WYSIWYG editor, enhanced administration panel, fast page loads and posting, and more.
This is a small summary of what MyCustomBB can do, and I know I’ve forgotten to include a lot. This list will grow and I’ll provide more detail as I develop the project. Be sure to check back soon.





