MODx and Drupal… Living together? What madness is this? Things fall apart; the centre cannot hold… and all that stuff.
Today marks a new ‘first’ for this blog – an informed, thoughtful take on the Drupal vs. MODx debate based on actual experience with each system.
Needless to say, such a rational, measured (not to mention effort-based) approach is well beyond my personal capabilities. So I’ve brought in some outside help.
She also uses, writes about, and (this is important) *likes* Drupal.
Mary appeared on my MODx radar screen recently over on Twitter, where she writes as @einsteinsboi, when she tweeted the following in an exchange with another user:
I love both MODx and Drupal equally. Each has its strengths and weaknesses, and I say it really depends on what you’re building.
Needless to say, this messed with my narrow-minded world-view. I had to know more. I contacted Mary, and, even though I have no credentials beyond being a freak with his own MODx blog, she graciously agreed to answer some questions on the MODx vs. Drupal debate. I learned a lot from this exchange, and I think the results will be a good read for anyone trying to make an informed CMS decision.
What is your background/history in web programming? I get the impression that its never been your primary career, but it sure seems like you’ve immersed yourself in it.
Well, you’re right about that. I don’t have a formal education in programming and web development and it’s never been my primary career. It’s been a hobby for the most part, but recently it’s evolving more into a freelancing business and it’s the way I want to it to progress, and perhaps eventually into a fulltime career. Even though my professional training and career is currently in healthcare, I have a graduate degree in Physics and taught at college (undergrad and grad level) for several years as well as doing Physics related research which involved a lot of time in front of a computer doing data modeling, simulations, interfacing, and computations. My work at different times involved programming in Fortran, the old MS BASIC, Visual Basic, LabView, Matlab, MathCAD, etc. I don’t do that as much anymore but it gave me an appreciation and love for all things computing and programming. I start getting more into web dev as an outlet for that part of my brain and I’ve enjoyed it immensely. I have an infinite curiosity and a healthy amount of ADD so this kind of work keeps my brain occupied and happy
What is your background/history with web CMS?
Well, I started out with plain HTML in the days of geocities, and then moved on to CMSs. I started out with b2evolution which is what my personal blog was initially built on. I eventually migrated that to WordPress. Then I discovered Drupal and SMF forums and my love affair with CMSs truly began. After dabbling with Drupal for a while I started playing with flat file CMSs because the free host I was using at the time only allowed you five MySQL databases, and I had exhausted mine. I tried quite a few but especially nano cms (which seems to have vanished), razor cms which I think is still actively developed, and flatpress. I also dabbled with Joomla for while, but that didn’t last very long. But the two that I consistently worked with through this time were WordPress and Drupal, and SMF for forums. I then discovered MODx about a year ago and have been learning and working with it and loving it. Initially when I started exploring it was definitely just out of curiousity, and as a hobby, then I thought it would be cool to have a website, then a blog, then I started thinking of problems to solve, or being approached to solve problems, and it all evolved from there. I have a couple more CMSs on my radar to learn and work with but WordPress,Drupal, and MODx are the primary ones that I’m involved with and actively use at the moment. I’m not by any means an expert in any of them but I learn more and more with each project and task I undertake, and as I teach and share what I know.
You wrote this on Twitter: I love both MODx and Drupal equally. Each has its strengths and weaknesses, and I say it really depends on what you’re building. That caught my attention, and I was wondering if you could elaborate on it. What are the strengths/weaknesses of each in your opinion, and what would be an example of a project better suited for Drupal vs. one better suited for MODx?
Well, this is a question I get asked a lot. I’m a strong advocate for using the right tool for the job (if you’re interested on my thoughts on this, you can read http://codingpad.maryspad.com/2009/12/05/the-right-cms/). The phrase “right tool” is very subjective, because we all have different tools in our arsenal. Let me give you an example. If a client asked me to build a website with a strong community component, including intricate user functionality, lots of permission structure stuff, commenting, multiblogs, forums, reviews and ratings, lots of community widgets, etc., I would dive for Drupal first, simply because there are already lots of ready made modules and my work would simply be to string everything together, configure, set up, and press go (it sounds simpler when written out like that ). I would be reluctant to launch into this with MODx because it would involve a lot of custom coding to create all the different components and make them work together. I think that when I master Revo this might not be the case, but with Evolution I think it would definitely be so. I’m not saying it can’t be done, but I’m not sure I would be able to justify the work involved when I have Drupal available. If a client simply wanted a blog I would dig for WordPress, because that’s what WordPress excels at. For anything else, I would reach for MODx. It’s all a matter of functionality, time investment, budget constraints, etc. Again, this reflects my own personal opinion, preferences, and current skillset. For someone else it’s bound to be different. I appreciate the strengths that all these CMSs bring to the table, particularly MODx and Drupal, and feel that I would be cheating myself and my clients if I didn’t exploit these to the best of my ability.
One of the reasons I chose MODx over Drupal was that I found the infamous “Drupal learning curve” rather intimidating and not a good fit for my timeframe and needs. I’ve found MODx mostly intuitive so far, and been able to do some pretty elaborate prototyping in a short amount of time. But I’m realizing that there is still a pretty large learning curve with MODx. How do you compare the learning curves, and do you think that Drupal’s learning curve deserves the reputation it has?
I don’t think Drupal entirely deserves the reputation of having a steep learning curve. Getting the initial concepts, as with everything else, may be challenging to someone not used to dealing with CMSs, but once you get over that initial bump I think it’s not that bad. Besides, there is a LOT of beginner friendly information out there, tutorials, screencasts, etc. As far as custom coding modules and themes, this may be a little different. I have never tried to intentionally master creating my own modules or themes, so I may not be the most suitable candidate to answer this question. But in terms of just building a Drupal website with what’s already freely and readily available, I disagree to some extent with the steep learning curve reputation. Again, it might depend on what your background is, what your timeline is, and what your expectations are. The best way to learn Drupal is to take your time with it. Learning Drupal when you have a project with a deadline is not necessarily the most optimal approach, and I think this is in part where the steep learning curve reputation comes from. I believe this is the best read on the topic -> http://learnbythedrop.com/drop/155
I think MODx is intuitive in a lot of ways because of the framework and flexibility aspects of it. In some ways I think of MODx as being more “naked”, for lack of a better word, than most CMSs out there. This allows a PHP programmer to start working with MODx and “get it” quickly as opposed to Drupal where you have to almost learn a whole new language and way of doing things and deal with modules that aren’t as easy to customize assnippet might be. And let’s not even talk about the theming issues and how much easier it is to template MODx than it is to theme Drupal .
That said, depending on your background, it can be easier to learn Drupal than it is to learn MODx. When I started learning Drupal, I hardly knew any PHP, so the module-based structure of Drupal worked well for me at the time and was easy to learn. I didn’t need to know any PHP or anything to get a pretty functional and even complex site up and running, just using what was freely available. Then, because I needed to do more, I started looking at the insides, the code, playing with the API, trying to create my own small modules. Because I had an appreciation for how Drupal itself worked, I could now start focusing on the more complicated stuff. I also started tearing themes apart and looking at them, trying to figure them out, customize them, and replicate them. When I found MODx, I was already more comfortable with PHP from playing with Drupal and customizing WordPress, so then learning MODx was pretty easy for me. I guess what I’m saying is that the learning curve really depends on where you’re coming from. Drupal has a lot of documentation and user created resources out there that allow for complete rank beginners in anything to start figuring things out and learning without the barrier of not knowing PHP or programming getting in their way. On the other hand, a lot of the documentation out there for MODx is more aimed at developers and people with some programming experience, and therefore that makes it easy for some developers to make sense of MODx more easily than they would of Drupal.
How about the user communities? Both Drupal and MODx seem to have a strong reputation for their user communities; what has been your experience with each?
I’m a relatively active member of both communities and I find them both to be active, friendly, and engaged. The Drupal community is a lot bigger and has been around for a long time compared to the MODx community, so ofcourse there’s a different approach to newbie questions in the Drupal forum than there is on the MODx forum which is younger and more newbie friendly. That said, I do find the Drupal community to be welcoming of beginners and willing to engage and help them. However, because a lot of the newbie questions have been asked and answered over and over again, you’re more likely to get “search the forum” “this has been discussed before” kind of answers or no response at all than you would on the MODx forums, which might sound hostile and unwelcoming to some. I find that any community, given time, does develop an air of exclusivity about it and you just have to know how to approach it, do your homework and ask intelligently phrased questions that show how what you’ve done, attempted, and where you’re stuck. I think this is the natural evolution of programming/tech communities as their products mature and become more well documented. Developers are prone to move on to solving more complex problems and don’t have the patience or time to help solve what they think are rudimentary or obvious problems. This is just my observation. Some might disagree with me. In all communities there will always be the die-hard fans who won’t tolerate discussing any other solution but in my opinion and experience these are the exception rather than the norm in both communities.
All things considered, the MODx community is one of the friendliest, most knowledgeable, and most helpful communities I have ever been part of, and I really feel honored to be counted in their ranks.
I have two web professionals in my organization who are avid Drupal devotees, and who were rather disappointed that I chose MODx over Drupal for our CMS conversion. My response was to assure/convince them that 1) Learning MODx would be a cakewalk compared to the effort they have put in to learning Drupal, and 2) Some large percentage of the “Drupal knowledge” they have accumulated is actually core “CMS 101″ knowledge that will directly and intuitively translate in the MODx environment. These seemed like good arguments to make, but having never actually used Drupal myself, I was pretty much pulling these claims out of my ass. How do you think I did?
Not being an expert in either system, this is a little difficult for me to meaningfully address, but I’ll try. Let me just say that you may be underestimating Drupal in your CMS 101 statement . When you learn to work with Drupal you learn a paradigm, a way of stringing things together, managing users, managing permissions, creating content types and creating views to present your data as you want it to appear, and so so much more. Not all these things are common to all CMSs. It may depend on how deeply they’ve developed for Drupal, how much they know, what their skillset is. I don’t know that the knowledge gained developing for Drupal will directly and intuitively translate in the MODx environment. There is no easy plug-and-play functionality in MODx Evolution as yet. Apart from the initially installed snippets, installing any other snippets involves some copy-pasting, and sometimes tedious and easy to mess up steps. Ofcourse this is all changing with Revo and package management (yay!!). Also, snippet calls, cached and uncached status, etc, are concepts that I’ve found people struggle with sometimes when setting up snippets, whereas Drupal modules tend to be pretty straightforward to install and configure once you get the basic concepts.
I would say plain PHP knowledge intuitively and directly translates to MODx. Both Drupal and MODx have their own APIs, so there’s not a direct translation per se, but there is a translation in the understanding of content management systems and their underlying principles. Again, depending on your web professionals’ knowledge and skill level, they may be completely flummoxed by MODx or find it easy as pie.
I think generalizations can be a little misleading, since one is not easier to learn than the other at baseline, it all depends on where you’re coming from. If I had met MODx before I met Drupal I would probably have run away screaming. But because Drupal (and WordPress) had given me the foundation I needed and the confidence to build relatively complex websites without knowing a lick of PHP, I was able to start exploring and eventually learn to program PHP, and understand the basic concepts behind content management systems and the separation between content management and layout.
I don’t think there is really anything to unlearn, just new knowledge to gain, a different way of doing things, and a new API. I can tell you from experience that having been accustomed to the Drupal user management and permissions system, the MODx one simply doesn’t work for me yet, and I find it confusing and limiting at best (I’m talking about Evolution, I haven’t delved into that aspect of Revolution yet). But this is a reflection on my own knowledge and skill level, and not of the MODx user management system itself. Different strokes for different folks and all that These are issues that I think you may find reflected in the experience of your web professionals as they migrate to MODx… or not
Well, your answer is in your question. Working with MODx fits your style and preferences and works for you. My answer to this is pretty much covered in one of my earlier answers where I talked about the distinctions between MODx and Drupal. While both can be considered frameworks in their own right, MODx allows you a lot more flexibility when working with PHP and with HTML/CSS in terms, and when integrating your own custom scripts or other third-party scripts.
I think that your statement about a “way-of-life” type choice can be applied to any tool, and will probably become the same of MODx as it matures and becomes more popular and more mainstream and develops an ardent fan base, which it already has. But this is a personal thing and having this perspective is a personal choice. I know quite a few developers like myself who use Drupal and develop in Drupal, but also use other CMSs and tools as and when needed. As a friend of mine put it, Drupal puts food on my table, but MODx gives me wings. Depends on your motivation. Right now I get a lot of clients asking me for WordPress sites, so I’m spending a lot of time with WordPress. Most clients won’t even look twice at MODx because they don’t know what it is. I try to sway them as much as I can when I think MODx or Drupal are a better choice, but people will go with what they’re familiar with and think they can maintain. Same thing, bigger companies will ask for Drupal sites because they’ve heard the Drupal buzz and know they can easily find Drupal developers if they need them in the future. Additionally, for a lot of people, once they immerse themselves in and learn one tool, it’s not worth it knowing more than this favorite tool, so they make it a way-of-life. It’s all very subjective.
Lastly, how would you make the case for MODx to a fundamentalist Drupal-head? And how would you make the case to someone like me — with a clear skepticism about Drupal that is likely at least somewhat unmerited — that I might want to consider Drupal in the future if the right circumstances come along?
I don’t know if I would try People can be very set in their ways and opinions, and I respect that. But here are my thoughts if I were to try. If we were working on a project collaboratively and needed to pick a tool, then I would use examples, prototypes, and pretty much the arguments I covered in earlier answers regarding the ease of use versus flexibility of each tool. If either tool would work just fine, then it would depend on skill level, time constraints, and budget issues.
Just because you can build anything with MODx doesn’t mean you should. Pick the right tool for the job. MODx is flexible, easy to customize and extend with the right skillset, easy to template, and more aligned with current OOP practices. Drupal is powerful, has been around for a long time, has tons of documentations and user resources, has tons of modules and extensions already available, and has proven to be stable through several iterations. It’s actively developed and has proved it’s not going anywhere.
To over-simplify this answer, if you need a powerful scaleable solution AND need lots of hand holding, ready-made components, and documentation OR you just don’t have the time or budget to custom code the things you need, go for Drupal, there’s always a module for what you need. If, however, you need a powerful scaleable solution AND want lots of flexibility, and have the skills, the time, and the budget to custom code stuff and to learn, go with MODx. This is an over-simplification, and it may not necessarily be 100% accurate, but it’s how I perceive it. MODx in and of itself is a powerhouse that hasn’t received the exposure it deserves, and I feel like I haven’t even begun to tap into all it’s possibilities. Additionally, I’ve been using Drupal a lot longer than I have used MODx, and I know I still have a lot of learning to do, and so my thoughts here should be read and understood in that light.
I think when Revo comes along and user and newbie-friendly and end-user documentation becomes more available MODx will be a force to contend with across the spectrum, but right now you may find yourself banging your head against the wall especially with non-developers who would rather use plug-and-play systems that already have the functionality they need in easy to install and configure modules and plugins, with lots of documentation and tutorials a la WordPress and Drupal. And I say this from the position of being an ardent MODx fan
Thank you Mary for taking the time to answer these questions in such an insightful manner. I think it will generate some great discussion, as well as serve as a good guide for those trying to make an initial CMS decision.