My Love/Hate Relationship with Cascade CMS


After a month of hiccups and getting ready for the upcoming semester, the team and I have been knee deep in Hannon Hill’s Cascade doing bug fixes, updating templates, and taking notes on all the things that drive us absolutely bonkers scotch-time crazy. But first, something I absolutely love…


Cascade's Asset Tree has visual hierarchy

See, this seems really silly, but I split my time 40% WordPress, 40% Cascade, and 20% other duties that are mostly CMS-agnostic. Then I spend another 15-25% of my life woking in Wagtail and it’s mostly terrific, except for navigating to pages in the admin area (see below).

But this guy, out of the box, has an “asset tree” that lets me see all my stuff in a really clean (if not actually accessible) hierarchy. I can see “ah yes, Page X is in Directory Y.” When I’m doing support, this makes my life really easy because I can say “it’s in the graduate folder,” and the person I’m supporting will say “ah, I see it, thanks,” and be on their merry way. In WordPress, all I get is a giant dump of all my posts / pages / whatever, and if I want those organized, I have to use categories or tags or some other nonsense with which I can’t be bothered. Even in Wagtail, which I’m really loving, the out of the box method of finding pages feels REALLY WEIRD.

Animation shows having to click through oddly placed links to get to a file.

Wagtail, I love you, and WordPress, I sort of dislike and it’s not working out between us. Cascade, you nailed this. It’s ugly, and I accept that, but it WORKS and I can find what I want quickly. When I’m dealing with sites with 100+ pages, I love being able to have clear directories and structure. Especially when it comes to things like images or PDFs or whatever else, this is 100% necessary. The “Media Library” in WordPress is a disasterous blob of uselessness.

Other than love

  1. Do I seriously need to clean out all of my Global area so that we can upgrade to 8 and, if so, why is there no easy way for me to go in and automatically change all my metadata sets? Or, I don’t know, make it so I can automatically find everything using Content Type X, maybe through that clever Relationships tab, and then tell the system to reassign everything to Content Type Y that isn’t in Global? WHY IS THAT SO DIFFICULT? Why did I have to make my team suffer through doing that manually? Yes, I’m aware if I had administrative rights to the system, there may have been some clever way to handle it, but I don’t, and many others don’t, because not all IT teams are built that way. One of the big selling points of Cascade is the fine granularity of permissions, so why can’t there be something that’s just below admin that could have provided this type of functionality? Don’t blame my IT structure.

  2. I really hate using a mouse. I’m a developer. Let me tab around your interface.

  3. Get out of here with that Velocity stuff. It’s a scripting language no one in their right mind would know because it’s ugly. What planet are you from that this looks remotely like something someone would want to write?

#set ( $news = $_XPathTool.selectNodes($contentRoot, "/system-index-block/system-page") )
#if ( $news.size() > 0 )
$_SortTool.addSortCriterion("start-date", "en", "number", "descending", "upper-first")
<div class="col-md-12 column" id="latestNews">
<h3>Latest News</h3>
#foreach ( $n in $news )
    #set ( $title = $n.getChild("title") )
    #set ( $link  = $n.getChild("link").value )
    #set ( $date  = $n.getChild("start-date").value )
    #set ( $content = $_XPathTool.selectSingleNode($n, "system-data-structure/content").value )
    <h4><a href="${link}">$_EscapeTool.xml($title.value)</a></h4>
        <span class="text-muted">$_DateTool.format("EEEE, MMMM dd, yyyy", $_DateTool.getDate($date))</span>
        $_DisplayTool.truncate($_DisplayTool.stripTags($content), 250, " ...", true)
    #if ( $foreach.count == 2 ) #break #end

Are you serious?