What do I lose if I use Wordpress instead of a php framework for a complex but "standard" webapp? Is the tradeoff worth it?

codeigniter, php, web-applications, wordpress

Solution

It's a fairly broad question, so here's a fairly broad answer...

Wordpress is a CMS. It's a good, flexible CMS with lots of built-in goodness, but its sweet spot is managing a site that's primarily about content, where content is very broadly defined as "words, pictures and other assets". The plug-in model lets you build/use additional functionality, and the wide user community provides lots of stability/security/scalability help.

Code Igniter is a framework that's designed for functional web apps (in practice, this usually means database-driven apps). Its sweet spot is managing complex interactions with a business domain. It is a framework for building any kind of app (including, if you were glutton for punishment, a CMS).

If your business domain is about content (and I don't think it is, based on your description), Wordpress is an obvious winner. In your case, I think you could probably build the solution using Wordpress, but it would be a real edge case - and the benefits you mention of "security, stability, robustness" would likely not apply, because you would need to build a lot of custom code. I think you'd very quickly get to the "well, it's not the way Wordpress wants me to work, but to deliver this feature, I just have to do it this way" point.

When business users say they want a CMS, they usually don't mean they want Wordpress (or Drupal, or Sitecore, or Magnolia); they want to be able to manage their site without having to go to the techies. If your site is primarily database-driven, that means screens to manage database records.

Problem

I know this has been asked a lot and I've explored the other answers, but I still have questions, so hopefully this sheds fresh insight on the debate. A year ago I built a service scheduling web app from scratch in CodeIngniter with the following functionalities: - user management with different roles and functionalities - different backends for each user - interactive and manageable calendar for scheduling services - territory management and assignment - management for service status - reports and records - billing with authorize.net - front-end informational pages All pretty standard stuff and codeIgniter worked great. Now, a year later, I'm revising the code. The client wants some different management features, like a CMS for the pages and to add new services and change the calculation price points, etc. I need to add new classes and code to make this work. Over the last year I have dove very deep into Wordpress and realize that I could have built this whole app in wordpress using custom post types, taxonomies, custom fields, and expanded custom functionality though a custom plugin. In many ways, this seems like it would be better. Pros of using Wordpress instead of php framework: - existing base with CMS, user management, familiar backend, database structure to start from, saving lots of development time - constantly updated security - stability - robustness (I know wordpress can handle this even though its intended use is for blogs) Reasons to use a framework: - flexibility - ORM - MVC - other? So... which is better? Do I really need ORM or MVC for this project? I feel my development efforts and client ux would be easier if I use Wordpress. What else do I lose if I switch to wordpress? What about combining Wordpress in a framework, or vice versa? Recommendations? When does it make sense to use a framework instead of wordpress?

Original source