There are more open source web content management systems than you can shake a stick at, so what makes WebGUI special? To start with, it’s more than a CMS; with it you can publish everything from simple websites to the most complicated intranets. In addition to the things you’d expect to find in a CMS, such as article publishing, polls, and blogs, it has dozens of apps built in for things like calendars, mailing lists, and surveys. And it has stuff you’d never expect, such as event management, dynamic CRUD builders, and product comparison matrices.
Project leader JT Smith says, “Most of our users are very large organizations – among them IEEE, California State University, the United States Department of State, and Brunswick Bowling. However, thousands of smaller orgs use it, mostly as a simple web publishing system. Some use it as a store (it has a full e-commerce system built in), others use it as a social networking platform (it has a full social networking platform built in), and others use it as a single-purpose app, such as an event management system for conventions (yup, also built in).”
Obviously WebGUI can do a lot of everything out of the box, but if its built-in tools don’t do just what you want, you can add on your own.
With all those capabilities, documentation is important. The project offers a free 150-page users guide called the Primer.
WebGUI is written 100% in Perl. Smith says, “Perl was the ideal language to use when I started the project because it’s great at processing text, and the Web is nothing if not made of lots of text files. I’m glad I stuck with Perl all these years; over the past 18 months or so it has become a very modern language. Gone are the days of CGI and spaghetti code. These days you have Plack and Starman for web development (not to mention Catalyst, Dancer, and Mojolicious as app frameworks), modern objects in the form of Moose, a fully featured ORM via DBIC, and nice multitasking through AnyEvent and Coro.
“We use other tools such as Apache, MySQL, and ImageMagick. We used to also support Oracle and Postgres, but we had so few users taking advantage of those that it just wasn’t worth supporting. And as of WebGUI 8, we’ll no longer require mod_perl, which means users will have a choice of which web server they want to use. Our recommended stack will be nginx with Starman.”
Smith began work on WebGUI about a decade ago. “I had been building web applications for several years and got sick of building the same stuff over and over again, so I decided I should build a suite of applications that could be my baseline for all new projects. That’s where WebGUI was born.”
In those days, a CMS might cost anywhere from $100K to $10 million. Smith felt he had two options for the software: Either keep it closed source as a hosted-only solution, or open source it. “At the time I wasn’t looking at WebGUI as a business; it was just a tool to help me get stuff done. Going open source helped get WebGUI adoption, and in the early days helped me get bug reports and feature requests to make it a better system.
“SourceForge.net gave me tools I could have never dreamed of when I was on my own as a sole developer. Worldwide mirrors for distribution was a huge reason for hosting here, but SourceForge also gave me a version control system, bug tracking, mailing list, and more. When I was first starting out, there’s no way I could have arranged for all those things. These days SF is still very important to us, because it puts eyeballs on our software, and we still love the worldwide mirrors.
“Initially everything except our website was on SF, but as we grew our needs changed. We decided to adopt Subversion before SourceForge supported it, so that meant pulling our source code off. Our users were also put off by having to register on our site and on SourceForge for publishing bug reports and feature requests, so we ended up building a bug tracker into WebGUI and pulled that off of SF as well. But we’re always evaluating how we can make better use of SF in our community.”
Version 7.9.6 was released earlier this month, and right now the project is neck deep in creating WebGUI 8.0. “Its primary features are massive scalability and performance gains,” Smith says, “as well as rewriting a lot of the underlying systems to use all of the modern Perl features that I discussed earlier. When all is said and done, WebGUI should be so fast that it feels as responsive as a native desktop app to all users, and you should be able to support 300% more users on the same hardware you have now. The first betas for WebGUI 8 should go out at the end of summer, with a projected stable release in early January 2011.”
Meanwhile the project makes bug fix releases every week. Major releases tend to come out at roughly six-month intervals.
Such a complex application needs help from people with a variety of skill sets. The biggest current need, Smith says, is people with HTML, CSS, and design skills. “Our templating system is being brought up to modern HTML5/CSS3 standards. We could also use some great web designs brought into the system as defaults. Beyond that, whether you can program, write documentation, write tests, validate bug reports, or anything else, we’ll put you to work. Nothing is ever done, and no matter how good something is, it can always be better.
“The best way to get involved is to join us in the IRC channel #webgui on irc.freenode.net. Most community discussion goes on there. However, for those people who are more comfortable working in forums, you can join us that way as well.”