I'm looking at building a custom web application for a client (a specialized auction site, in this case), and we're evaluating using some existing CMS as the "scaffold" for the application.
The justification is the fact that for many custom web application projects, some 70% of the code written goes in to adding CMS features, user management, and basic admin CRUD. Presumably, if we start with an existing CMS, then those to components will already be built.
We've decided to stick with PHP for distribution and deployment reasons. The top CMSes we're evaluating are Wordpress, Drupal, and Joomla. Here's our analysis so far (listed in order):
Wordpress
Pros: Dead-simple design. Extremely popular and understood. Very solid recent security history.
Cons: Perhaps a little too simple -- can it be made to work?
Drupal
Pros: Potentially more friendly to custom application development. Decent security history.
Cons: More complex and difficult to understand.
Joomla
Pros: Popular and well understood.
Cons: Some security concerns
Once of the biggest issues we're running up against, and what we hope to gain from the S.O. community is understanding how easily these can be customized to become a custom application. As an example, when the client goes into his administration area, will he get the impression that this is an, "auction site with a built-in wordpress CMS", or will it be a "wordpress site with an auction plugin"? We're hoping for the former rather than the latter. But can it be done?
Or perhaps are we looking in the wrong direction? Should we be looking instead at something like CakePHP? (Note that options like RoR and Django are off-the-table because of distribution and deployment reasons.)
Here are some related (but not identical) questions which have some useful information:
Using a CMS to Design a Web Application
CMS for custom application
This is a question we used to face regularly.
Our development arsenal consisted of Wordpress and CakePHP. We used the former where we could and the latter when we really had to.
Unless you're doing something really radical, you can probably do it with (something like) Wordpress. These days, the admin area can be heavily modified and custom taxonomies allow for meaningful entities rather than just posts and pages.
What you need to consider is the wealth of features and testing that comes with an established CMS package. Plus, Wordpress et al. have an enormous collection of plugins/extensions, which can take you even closer to where you need to be.
I guess what I'm saying is, you'd find it hard to convince me to drop back down into something like CakePHP.
EDIT: Six revisions have a great post on customising the admin area. Also, if you have specific wordpress queries, remember we have a really strong stackexchange site waiting for your question!
Unless you're doing something radical you're going to be better of using a CMS (in agreement with Tom Wright above).
I'll pitch in for Drupal. Its a extremely capable CMS that powers some world class websites like http://www.whitehouse.gov (The US President's Official website). That itself speaks volumes about its scalability, reliability and security.
Check out http://drupalsites.net to see a whole set of websites made in Drupal. Once in Drupal you'll have access to one of the most active communities out there for an open source project. This community has produced over 2000+ free modules (or add-ons) to meet requirements that cannot be fulfilled by vanilla Drupal.
It is true that Drupal has got a sharper learning curve than Joomla or Wordpress. But Drupal, I believe is more powerful than Wordpress and Joomla. Once you've mastered fundamentals of Drupal its easy to roll out features. The whole Drupal system just feels consistent. Some CMSes are an endless series of one-off modules that just need to be configured that way. Drupal has some powerful modules like Views and CCK, that, once mastered will help you accomplish so many things that would have required many different hacks/add-ons/custom programming in other CMSes.
Joomla has a reputation for being easier to learn but ultimately difficult for building truly complex and massive community based sites. Wordpress, though fast maturing with version 3.0 is still a ways away in being as feature rich as Drupal/Joomla. Then there are some other upcoming CMSes on the horizon -- check out Packtpub CMS awards -- you can see some good CMSes listed there.
Essentially it comes down to this -- CMSes like Drupal are built to accommodate mainstream website needs. If your site is not radical (today's twitter or foursquare equivalent) stick with Drupal/another CMS. The development times are just severely reduced. Only once you feel that what you are doing is not practical in a CMS should you choose a framework like Cake, Django etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With