Sitting high atop the director’s chair, John Percival has a lot to be proud of. As an integral part of Jelsoft, and the creator of vBulletin, John has taken a dream and made it into quite a stunning reality.
Many sites around the world — thousands in fact — use vBulletin. Packed with features, it’s user-friendly and quite scaleable, and is arguably the best PHP/MySQL forum software on the market today.
How was vBulletin created? Why was it created? And what are some of the plans for the future? John Percival unveils nearly all…
SP: Firstly, can you tell us a bit about yourself? How did you get into software development? What were you doing before you started work on vBulletin?
Sure. I’m John Percival, and I’ve been working for Jelsoft now for 5 years. I originally came on board to help out founder and co-owner, James Limm, run a Website for Visual Basic developers. This involved writing articles, code snippets and reviews for the site, and keeping our Q and A forums lively and active. I was doing that up until February 2000, when we decided that our existing message boards didn’t make the cut, so the decision was made to develop some new ones in PHP/MySQL.
SP: What originally inspired you to write vBulletin? How long did it take you to put together the first version?
As I mentioned, our existing message boards were not holding up under the strain, and neither James nor myself were familiar with the board’s code, so we were unable to modify it to integrate it with the site. We made a decision to develop a completely new system in PHP, so that we could integrate it much more tightly with the rest of the VB-World Website.
Having written a similar content management and feedback system for VB-World in PHP, I already had a lot of code to work from in building what was to become vBulletin. Our new forums soon picked up a bit of interest from the bulletin board world, and we were persuaded to develop it further and release it. The total time between first decision to write the software, and the first version being released was about 2 months.
SP: Why did you pick PHP and MySQL? What other combinations did you consider?
The main reason that I chose PHP and MySQL was because that was what I knew how to use. I did not have much Perl, C(++) or Java experience, so they were not really options. I had previously written VB-World’s content management system using the PHP/MySQL combination, so I was confident that they’d live up to the task.
Also, PHP and MySQL had very active development communities, so we were guaranteed that they would be supported and developed for the foreseeable future. In the end, we didn’t seriously consider any other options, as PHP/MySQL was what was right for us at the time — and we didn’t consider releasing it to the public until after the main part of development had been done.
SP: Can you tell us a bit about the programming environment — both physical (your office space) and onscreen — in which vBulletin was created?
Sure. I tend to work in a fairly quiet environment with as few distractions as possible. Music on in the background is good, although I’m often concentrating so hard that I don’t notice the CD finishing :-) During the time in which I originally developed vBulletin, I tended to work quite late, and solidly for hours at a time, before taking a considerable break and getting some sleep. I found that I was more productive over solid, concentrated periods of time, rather than little bits here and there.
Most of the design work for vBulletin was done on computer, but I always have a pen/pencil and paper handy in case I need to make notes or to sketch something out. Most of the development work was done using TextPad (textpad.com), which I now swear by for all my PHP work. It’s an excellent, handy little text editor that does everything I need, without being over complicated, over-pretty, or clunky.
Testing work was done on my local machine, with Apache and MySQL running under Win98 (now Win2k). The great thing about PHP is that you don’t need expensive development tools — a simple text editor is all that’s required, and PHP/MySQL/Apache are all free, so it’s a very low-cost solution.
SP: When you launched vBulletin, UBB was leader of the pack. How did you go about introducing vBulletin into a market dominated by UBB? And did you ever see yourself actually rivaling and becoming better than them?
When I first developed vBulletin, it was just a personal project for use on VB-World. However, a few UBB users were concerned about the direction that their software was heading, and were pleased with this breath of fresh air that we provided. They got in touch with me, and persuaded me that there might be a market for it if we were to release it. So that’s just what we did. We had nothing to lose by doing so, and we were very surprised that it took off so fast. It was an instant hit, and picked up a very vocal and dedicated following of users very quickly.
These guys and the ‘hacking’ community have contributed a huge amount to the success of vBulletin. For the first little while, we had no marketing budget, and it was just promoted through word of mouth. We never saw ourselves becoming market leaders (not that we are yet — I’ll leave that decision to the independent reader), and the speed of success caught us by surprise several times. It has been a challenge to expand so quickly, but one that we have taken up and, I think, succeeded at.
SP: To what do you attribute vBulletin’s success?
There are a number of things that I can point to immediately, but I think that the biggest one of all is people: our customers have been invaluable in helping us improve the software, providing constant suggestions and bug reports, as well as passing on information about vBulletin by word of mouth. Also, the ‘hacking’ community has been a huge bonus for vBulletin.
These people create code modifications for the plain vBulletin software, to add new features, or to improve existing ones. vBulletin is distributed with full source-code, so the customer is free to take the code and modify it as much as they like. People like this a lot, as they can customize it to fit in their situation, rather than having to use a one-size-fits-all solution. Despite that, we’ve done our best to create the most well-rounded solution possible.
vBulletin 2 was released just under a year ago, and this made vBulletin much more secure, much more stable, and increased our feature-base a lot. vBulletin’s template system is also a big hit — particularly the ability to modify the complete look of the forums from within an online Web control panel, and the ability for the user to get down and dirty with the HTML too, if they want.
vBulletin has a host of administration tools that make it a lot easier to maintain, and many features for the user too, which make it popular for bringing the community together, and centralizing the focus of a Website on the forums. The users like the experience, so the administrators like it, and so they tell others about it — and I think that has been the key to vBulletin’s success.
SP: There’s been an influx of forums software onto the market, and the interest in open source software grows all the time. In future, will you continue to charge users for licenses, or are you looking at other ways to generate revenue as the market becomes more competitive?
vBulletin has the huge advantage over open source projects in that we can pay people to provide support. Therefore, if you purchase a license, you are guaranteed that we will provide you with support in all ways we can. This can involve logging on to people’s servers, offering help by email, and liaising with server administrators to improve performance.
Despite the fact that the market is becoming more competitive, vBulletin continues to gain popularity. We’re not sitting back and resting on our laurels, but rather continuing the exciting development of vBulletin 3.
SP: There are all kinds of sites on the Web — from hobbyists to large enterprises. How does vBulletin fit into the Websites of these different classes of customer?
From a technical point of view, vBulletin can handle sites of all sizes — from the smallest bulletin board to the largest community — given the correct hardware. We have several customers with millions of posts in their database, so there are no scaling issues. This is all achievable on run-of-the-mill hardware too.
Our low price makes the product very attractive for small-medium sites. We’re also working on providing more solutions for our enterprise level customers, with more inclusive Support options and support for other enterprise-level database engines.
SP: I understand that you’re rewriting vBulletin for the version 3.0 release. You just rewrote the core engine for vBulletin 2.0 – why rewrite it again? What sacrifices did you have to make in order to improve the performance of vBulletin in version 2?
vBulletin 3 is not going to be a complete rewrite in the same way vBulletin 2 was. We’re looking at what we have learnt in creating vBulletin 2 — we’ll keep the best bits and making them better, and take the not-so-good bits and rework them. The code is being designed with performance and scalability in mind, while keeping things as modular as possible. The only sacrifices that we make in order to improve performance is developer time — if a feature is going to be included we make sure that we spend the extra time on it, ensuring it’ll perform under all different conditions.
The biggest improvements that we were able to make on the vBulletin 2 were the SQL queries — this is how vBulletin and PHP interface with the database. We were able to improve the way these queries were made, and the number of queries the system could handle, so that the code was a lot faster.
SP: Do you have any recommended resources for PHP/MySQL developers who want to learn how to optimize their code for high performance conditions such as those to which vBulletin is regularly exposed?
The MySQL Website is a good place, and the Paul DuBois MySQL book is a good reference too. However, the best experience is gained by actually trying and tinkering with code yourself. See what kind of code works, what doesn’t, and learn by trial-and-improvement. You’ll soon start to pick up a few tricks. One thing that we’ve learnt in developing vBulletin for its varied environments is to have as few queries on the page as possible.
SP: Where do you draw the line between incorporating user-requested features, and optimizing the product’s performance?
User-requested features are usually included based on how popular they are. If a feature proves to be very popular, we’ll start to look at ways to include it in the vBulletin code in a way that won’t hit the performance significantly.
There are almost always several different ways to implement a feature, and we always look at the best-performing method, over the easiest-to-program method. If there’s going to be the possibility that people are not going to want a particular feature, or it might be a bit too resource-hungry for some people, we put in an option so that the administrator of the board has the final choice.
SP: Can you share with us some of the new features of vBulletin 3.0 that haven’t yet been made public?
We’re not revealing too much right now, as a lot of it is still being worked on, so we don’t have full details available yet. From the admin perspective, the control panel is being revamped, including a much improved templates system, and a more comprehensive security/permissions system. From an end-user point of view, the interface will be much improved, with the option of threaded views on messages. The user control panel has also been enhanced, but we can’t say much more than that yet!
You never know, but before long you might find vBulletin powering your whole Website, not just your forums! ;-)
SP: A little trivia: what’s the largest number of users that have ever used a vBulletin system at the same time? What sort of hardware was required to accomplish this feat? What’s the largest community that’s running vBulletin that you know of?
Unfortunately, I can’t mention the names or URLs of our customers. However, we have seen forums with more than 1100 users online at the same time, another with over 170,000 registered members, and another with in excess of 3 million posts. So it should handle most day-to-day forums without too much trouble!
To power forums that large does require quite a large server setup, though. I’d think that they probably have two servers, one for the database, and one for the Web server. Each would probably be a Dual-P3 1Ghz machine with 2GB RAM, SCSI hard disks. That’s just a guess, but with the falling cost of servers, a server that size wouldn’t be unreasonable for a large site.
SP: What are the plans for vBulletin’s future? Will you be sticking with message boards and related systems, or are there plans to branch out into other products or services?
Well I think that I’ve dropped a couple of hints through the other questions, so go back and have another read! We plan to stick with Website development tools for the near future, along similar lines to what we’ve done so far. We’ve been working on a few deals with ISPs over the last few weeks, so watch the vBulletin Website for an announcement and more details very soon!
vBulletin will continue to be actively developed, and we will be trying to keep on the cutting edge of technology, making sure that our customers are fully supported, and have the most comprehensive bulletin board available to them at a low cost.