Things that Suck About MODx CMS
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.

Comment by Jay Gilmore (smashingred)
on 28 Feb 2008 at 12:24 pm #
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
Comment by James Ehly
on 06 Mar 2008 at 3:52 pm #
Thanks Jay. I looked into WebLoginPE and that looks really promising for managing web users better. Can’t wait to see 097
Comment by EllisGL
on 04 Apr 2008 at 3:33 pm #
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 =).
Comment by Jay Gilmore (smashingred)
on 04 Apr 2008 at 5:42 pm #
@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
Comment by James Ehly
on 05 Apr 2008 at 10:15 am #
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.
Comment by Jay Gilmore (smashingred)
on 05 Apr 2008 at 10:39 am #
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
Comment by James Ehly
on 05 Apr 2008 at 11:51 am #
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!
Comment by Dave
on 17 Jun 2008 at 2:06 pm #
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.
Comment by Mike
on 16 Jul 2008 at 5:36 pm #
Hey Dave!
Can you share the way you merged PHPlist and MODx?