This post started out titled Pros and Cons of MODx CMS, but today I'm rewriting it because I'm really not in the mood to give you a bunch of fluff about why MODx is great and then give you the bad stuff. Flat out, I think MODx is the best CMS for my projects at this point in time. Now on with things that suck...
<rant>
It says its a Framework, but I use it as a CMS
If you have used frameworks in the past, MODx is not going to feel like a true framework. My personal fav framework is CodeIgniter and there is just no comparison between the two. The MODx API is very poorly documented, small, and weak compared to all of the functionality included in CodeIgniter, and CodeIgniter is a simple framework. I just don't see the structure there to really call it a framework, and I would prefer to call it a CMS with an open or pluggable architecture. When I need extensive custom database functionality I bring in CodeIgniter to do it because MODx lacks features that would make it easy (CRUD tools, a data editor, dynamic data module, etc).
Membership Management sucks
This is probably the thing I hate most about MODx. The Membership Management for Web Users and Manager Users is really difficult to work with, doesn't fit most workflows, and is counter to how easy the rest of the system is to use. I need a member management system that allows for one manager user to manage one page if need be, and this is just a nightmare to set up with the groups and document groups system. What I really want is a system that allows me to set up roles (controls what they can do), create a user with that role, and then select individually what pages that user can edit, or what group of pages they can edit. I also want the functionality to make all pages have some kind of default level of security, like all pages can only be seen by the administrator, who can then give users permission to see specific pages (MODx is works pretty much opposite to this). IMO this has to be totally rewritten to function better.
Ditto isn't a blog
Ditto is practically core to MODx so I'll complain about it... Sure you can make a blog with Ditto, but why? If you have a client that is serious about blogging then set them up with Wordpress. I made the mistake of doing a blog with Ditto for one of my clients and while you can do it, it's too much of a pain to set up for how little features you get.
Last gripe goes for a lot of things
I know it's probably not fair to pick on MODx while it's still getting around, but I always end up using what I call MODx+...MODx plus some other software that can do something MODx can't. It's a real tribute to MODx that I can make most programs work seamlessly with it, but it's also kind of sad that they don't have a fully featured ecommerce module, calendar module, blog module, etc. If you use MODx you can probably plan on using other things along side it.
Switching Javascript Platforms has been a Pain
Seriously, Scriptaculous and Mootools together? Thanks for making us use both, not. And the Horizontal marquee is broken now, too...arg.
</rant>
Now I know that the MODx dev team is working on a lot of these things, and we're all awaiting 0.9.7 to drop out of heaven, but in the mean time, all these things still suck. And isn't it nice to know that these are the only things that really bother me about the CMS? I mean, everything else is great or not bad enough to warrant a rant.
Comments (25)
Feb 28, 2008 at 12:24 PM
Jay Gilmore (smashingred):
James, Great post! MODx is the best CMS system out there--bar none. That being said you are right on your points of contention with MODx. Agreed--Ditto is not a blog, Ditto with Jot is better, Ditto with Jot and Reflect are better but none of these configurations equal WordPress which if you are going to build your business model around blogging then you should build it on WP not MODx. In order to be a fully fledged blogging app there needs to be more including trackbacks, automatic pinging of ping services, pingbacks, and comment spam filtration. That being said there is nothing stopping anyone with time and wherewithal to build them. I can't speak for Membership management but WebUserLoginPE is better than the built in one but I am not sure what deficiencies you have. I have compared the user management to a couple of other systems and I am not happy with any of them. On 097 and framework. I don't know if you have SVN'd the alpha and tried it out or looked at the documentation and layering that is the vision for 097 but now that the procedural code is being removed entirely and MODx, the Db layer and the development of contexts, MODx or its component parts will be able to be used as a true, uncluttered application framework. I don't see it being like Symfony or CakePHP or other automagic php application frameworks but more of a web site system framework. The API for each of the component parts will be complete and extensive as 097 is essentially a rewrite. On additional documentation, there will be more documentation for 097 and beyond than there has ever been before and again, with the complete APIs no devloper will have to set foot inside a core file for anything other than curiosity. Keep writing about MODx. Most Sincerely, Jay Gilmore
Mar 06, 2008 at 03:52 PM
devtrench:
Thanks Jay. I looked into WebLoginPE and that looks really promising for managing web users better. Can't wait to see 097 :)
Apr 04, 2008 at 03:33 PM
EllisGL:
I've always wondered why they called it a framework. The user system is really weak. I want a full ACL system. There needs to be a real blog / news / article (multi page too?) system integrated definitely. It was a big pain to setup Ditto and Jot based on the directions given in the tutorials. But at least my postings will be SEO'd =).
Apr 04, 2008 at 05:42 PM
Jay Gilmore (smashingred):
@EllisGL It is called a framework because it is not a Content Management System the way that Joomla or Drupal or EE are it is a basis for a semi-custom content manager based site. A "framework" for a system but not a system. If you are looking for robust ACL and User Managment their is WebloginPE or you can roll your own or port one of the other PHP ACL systems. You seem to be blending two different things too. The whole thin aboout blogs and multi page (all that can easily be done wiht Ditto (a third party addon that ships with the core (this may change after 0.9.7) with full integration but you want a framework. The fact that MODx actually includes the tools is really stepping somewhere between framework and system. So I am not sure which you would prefer. The only area for blogging that MODx is lacking is in trackbacks and rpc pinging for updating news services and I am currently rolling that into a site. There may in fact be a better system out there for you. I would lean to either Drupal or Expression Engine if after trying MODx you want to try something different or if you want to get daring you can grab the MODx 0.9.7 SVN or if you are even more ambitious you could grab xPDO (the ORM that 0.9.7 will run on) and Smarty and go for it. Again, keep in mind I am somewhat biased as a member of the MODx marketing team but I love constructive criticism. Join the forum and find one of the most incredible OS project communities. Cheers, Jay
Apr 05, 2008 at 10:15 AM
devtrench:
EllisGL and Jay, thanks for your comments. I have to agree with Ellis that Ditto+Jot+Reflect is a pain to set up. It's really easier to integrate wordpress into MODx than to set up Ditto for a true blog that needs trackbacks, better comment management. At this point I think that Ditto is great for News type content that doesn't have comments, but if I have a client that wants to be a blogger, we go with Wordpress. I also agree with Jay that it's amazing that MODx even has an api. But I still have reservations calling it a framework too. It is simply not robust enough to give programmers all of the tools they need (or maybe it's just not evident unless I read every single piece of MODx code). Here is an example - MODx api documentation vs CodeIgniter Docs. Now CodeIgniter is not a CMS and doesn't claim to be, but MODx claims to be a PHP Application Framework, and I don't feel that that is justified by level of API integration. I'm really excited to see how '0.9.7' changes things. With xPDO behind the scenes I expect a lot of changes in how I can use MODx. Drupal and ExpressionEngine suck. Stick with MODx.
Apr 05, 2008 at 10:39 AM
Jay Gilmore (smashingred):
James, If you are setting up to be a blogger, by all means use WP2.5. It rocks as far as use for a blog. I use it and my wife uses it and I have installed literally dozens of blogs using WP. Ditto+Jot are not a blog. They are a display interface and are a great way to build a simple blog for people with low needs. If you look at the 0.9.7 docs you will see a two tier API that is more robust than anything out there. In addition you will be able to integrate things like a 3rd party library or even with CI. You will also see the erroneous use of MODx being labelled as an Application Framework disappear when the new site is up (month or 3 from now) and all the documentation will clarify this and more. Jason (OpenGeek) suggests that for pure Frameworking using xPDO with Smarty and omit the MODx engine alltogether (which is totally possible in 0.9.7) Incidentally, I am building an app/site in CI because it can't be done with MODx. It is about the right tools for the project. I still have built more than 20 sites with MODx and will continue to do so for certain projects. Cheers, Jay
Apr 05, 2008 at 11:51 AM
devtrench:
Awesome, all of this 0.9.7 stuff sounds so cool. I still have yet to download it from SVN. Really excited to see how MODx will change :) And just to clarify, despite the tone of this post, MODx is still the best CMS out there, and I think that through discussions like this things like 0.9.7 happen. Thanks for all of the comments!
Jun 17, 2008 at 02:06 PM
Dave:
Nice article! I'm also a MODx user, having developed about a dozen sites with it. Maybe I'm odd, but every system I use, no matter how good, looks suckier the better you know it. Still, I like it, and will continue to use it. It's nice seeing outside opinions, because fans of anything always seem to drink the KoolAid. The single best thing about it is templating... very, very easy, and with their Template Variables you can do almost anything. Make pure XHTML without a table in site all day long if you wish. But yes, documentation is very incomplete. The community is very good, and you may get lucky with an answer there, as I often do. Otherwise, prepare for a lot of troubleshooting. And yes, their "blog" using those 3 things cobbled together is feature-lacking, and very error-prone to set up. Nasty. The most popular photo gallery, though good, is also extremely error-prone to work with. And any system unable to easily have ecommerce is going to be docked by me. There are some new contributions, and they look promising, but are small. So it's true - you may end up plugging in other software to get the job done. I hate Iframing, but use it when I have to. I recently Iframed PHPList into it, for instance. I guess from my comments, I should be looking for something with more functionality built-in, not a framework, as I'm not an ace php developer. But Joomla is too inflexible, and a pig. I would be interested to see if anyone has compared MODx to any of the really hardcore systems like Typo3 or EZPublish. But I'm still very intrigued by these other apps that people are talking about above, and I'll try them.
Jul 16, 2008 at 05:36 PM
Mike:
Hey Dave! Can you share the way you merged PHPlist and MODx?
Nov 22, 2008 at 05:56 PM
Dave:
I don't look at this list much, so sorry about not replying before. Iframing PHPList was easy, though it's pretty much not findable in the documentation. You set up a TV, and use the View Port Widget. They could have called it "Iframe", but didn't. Then you put the URL of your PHPList (or other app) in the "Input Options" field. That's about it, and then you adjust the frame with the View Port parms. It's by no means ideal, due to scrolling issues across browsers and such, but this is probably more a weakness of Iframes than MODx per se. On the site in question I actually used "Input Type" of drop-down instead of the usual Text, and then had different URL's in the "Input Options" field separated by double-pipes. Then the person using the TV on a page could choose from 3 separate PHPLists. Nuts, eh? One real head-scratcher was that when I made a change in PHPList, and refreshed my MODx framed page, no change. So you have to refresh the PHPList page separately. And yes, that's probably obvious to all of you, so I'm a bonehead. MODx has some modest mailing list stuff, but the client needed ridiculously complex and long forms, and had basically no budget, so PHPList was the best fit I could find. I should say that other apps, like Wordpress I think, have quite robust plug-ins for PHPList, so if I were doing it all over again, I'd probably try something like that. Good luck!
Dec 31, 2008 at 05:11 PM
Mark Esler:
I happily converted my blog from wordpress to MODx (ive been converting it since last night and almost done) Wordpress is constricting.. things are set up for you so that its easy, but if you want to expand too much you cant since your stuck with an oversimplified cms. hackerblog .net is now ran on the superior cms :P
Jun 13, 2009 at 07:14 PM
bluehipy:
ModX can be a pain in many directions, modX Evolution. I think that modX Revolution is much more better as API. I don't know why they have gone with mootools and scriptacoulous instead of just using jQuery. Ditto + Jot can help you make somthing working fast. I made this: http://www.joy2share.com/code/log/smarty-aproach-to-modX.html In couple of hours. Also the article describe how to use smarty with modx if anyone would be interested.
Jun 17, 2009 at 03:21 PM
juckl:
So why is site not running on ModX...if it is your CMS of choice?
Jul 14, 2009 at 03:14 PM
devtrench:
Read the section titled "Ditto isn’t a blog". Mostly I feel that MODx fits the website mold better for my clients. Since I author this site and since it is more of a blog, I chose Wordpress to benefit from all of the social features. I also understand the difference between posts and pages, which is something my clients have a hard time getting used to (especially if the don't want a 'blog'). Both are great, and both would have worked for this site, but I'm happy with Wordpress.
Apr 23, 2010 at 12:25 PM
juckl:
In that case look at the ExpressionEngine...you can have both, a better CMS (than ModX and Drupal) and blog (better than WP) if you like...without having to install million 3rd party plugs.
Sep 09, 2009 at 07:07 PM
Bob Sanders:
Modx is so lacking in web 2.0 apps and social network applications, does anyone know a better CMS whereas it has the power of ModX but better social??? What would you use to power a very large travel company that has a social network attached?
Oct 12, 2009 at 02:20 PM
MODx Sucks | DEVTRENCH:
[...] writing my MODx sucks post, I’ve worked a lot more with it and have concluded that one thing that could make MODx [...]
Dec 11, 2009 at 04:25 AM
paul b:
Look, this has been bothering me, and feel free to shoot me down in public or private. I have used ezpublish (whatever the upper/lower case convention is at present) quite a bit. It occurs to me that an important feature of ez is that it is the only cms I've encountered that treats the content area as actual content: you can parse it for images (find the first image in the content block, process it, and add it to another page); index the headings (to create anchor menus); link to content objects within the system (http:ezobject:1244 or whatever). Do you know of any other cms which does this? I'm not sure about MODx, but Silverstripe et al all seem to get to the content block and say: "crappy html coming up - don't worry about it". Shouldn't we be asking our cms applications to process all data, not just the easy stuff?
Dec 11, 2009 at 10:39 AM
devtrench:
I've never used EZ publish, but I know MODx can do everything you wrote, but there might not be an easy plugin to do it yet. MODx has plugins that use hooks (very similar to wordpress), that you can use to manipulate how the CMS works. For instance, you can use the OnParseDocument hook to grab all of the page document variables and parse them however you want before displaying them to the user. You can also use PHx (another plugin) to manipulate content. James
Jan 07, 2010 at 11:05 PM
Mitch:
Maybe this post can do with an update now? Since we write the year 2010 now and with MODx 2 version on the market I believe a view of these things have changed now ... (and I haven't even started using it but will tomorrow) ;-)
Jan 08, 2010 at 09:05 AM
devtrench:
This post does have an update: see MODx Sucks. It was written in Oct. 2009. BTW, I still haven't been able to install and work with MODx 2 because of all of the bugs. I don't really have time to be a beta tester.
Feb 04, 2010 at 11:39 AM
Why I chose MODx over Drupal, Part One: Because I’m Lazy, Stubborn and Anti-Social « Why I chose MODx over Drupal:
[...] is poorly documented, feature-deficient, and sits alone in the cafeteria at [...]
Mar 18, 2010 at 11:31 PM
Anony Mouse:
I'm a long time Drupal user and wanted to check out the hype of modX. Unfortunately, after installing it, I couldn't even get into the manager because of some error of "could not load DBAPI class" errors. In my book, modX is a FAIL. I'm sticking Drupal.
Mar 21, 2010 at 03:54 PM
devtrench:
If you count out MODx because you can’t get it to install then you’re really not giving it much of a chance. But honestly, if you like Drupal a lot, then I’m sure it will work fine for you. And if you’re happy with it then why change? I’m happy with MODx and I’m not changing anytime soon.
Apr 19, 2010 at 04:37 AM
Nico:
IMHO anony mouse is a failure: 1. comparing drupal to modx is like comparing apples to pears 2. giving up after installing error :P Like any package you have to put some efford into getting acquinted with modx. Once you've done that, you'll learn to appreciate it.