Over the years, I've spent a great deal of time working with various CMS packages on multiple levels--as a basic user, as a developer trying to extend them and as an administrator doing installation and configuration. I've seen just what a pain they can be. And so I was immediately intrigued when I saw these statements on the "About" page for an open-source CMS package called Concrete5:
--"Building and maintaining a site in Drupal or Joomla is far too complex and intimidating for a regular person.
--"Sure it's great you can get started quickly, but if you want to do anything more than blog, Wordpress is like using a hammer to drive screws.
--"With Concrete5, you get the best of both worlds. Anyone can start making their own Website in seconds, and the editing experience is easier than using a blog; just click on what you want to change. Developers still get a flexible and robust framework for building sophisticated Web applications. Web geeks can build anything they might with Drupal or Joomla."
Does the formerly commercial Concrete5 live up to hype? eWEEK Labs put the CMS through its paces to find out and to determine whether its ready for enterprise use.
When fighting (er, I mean working) with a new CMS (content management system), one of the best ways to get a basic feel for its capabilities is by checking out other sites built in it. To be fair, this isn't going to show you everything. (Perhaps the developers included several components that aren't really being used much.) But it's a start.
Most of the well-known CMS sites include a "showcase" section, and Concrete5.org is no exception. One of Concrete5's showcase sites is for a design agency, and one features photography.
The two sites are drastically different, which is a good sign for a strong CMS system. One is primarily an advertisement site, featuring mainly static pages; the other is a dynamic site showing recently created content.
A good CMS system should be able to create custom, static pages that are nice-looking and fit into the overall look of your site, as well as dynamic pages containing content requested by the users of your site. For example, when you visit an eWEEK.com page, our CMS does what nearly all other news sites do: It notes what article you are requesting, takes our template and inserts the article along with additional appropriate material (ads, links to related content and so on).
The real power in any CMS is its ability to handle dynamic pages like those you find on eWEEK. The reason I say this is a lot of non-CMS software can be used to develop static pages. Dishing out content dynamically, however, requires a good bit of server-side functionality.
Unfortunately, there are some really simplistic server-side systems calling themselves CMSes that do dish out dynamic content. But sites built from such software generally look the same: Basically, they look like cheap blogs with a giant header, a blog item on the left and a list of links on the right. But as you can imagine, our needs here at eWEEK are significant: We're dealing with hundreds of thousands of articles, thousands of images, many ads-the works. Can Concrete5 CMS handle something as big as eWEEK?
You can install the open-source Concrete5 for free yourself on your own servers, or you can pay $15 per month to host your site on Concrete's servers. (The organization also provides premium services such as custom hosting and other professional services for additional cost.)
I installed the software myself. It requires PHP and MySQL. Because of those requirements, I installed it under an Apache HTTP Server. (I didn't test whether it would run under Microsoft IIS with PHP and MySQL installed, but it should work just fine.)
Installation couldn't be easier. The first screen asks you for the usual information: a name for your site; the name of your MySQL server and login; and so on. Like a lot of good software today, Concrete5 evaluates your current configuration and informs you if you're missing anything.
Once installation was complete, I had a basic site with some basic pages built in by default.