cool tech graphics

The Framework is dead. Long live the CMS.

If you don't know already, the framework is dead. That is to say, unless you have money to burn, frameworks like Zend, CakePHP, Django, Struts, .NET, and even Rails should not be considered as a foundation for building anything but the most unique and game changing websites*. The age of the framework for building websites is gone and it has been replaced by the open-source CMS or Content Management System.

In this declaration I am not promoting any particular CMS (although I'm partial to Drupal myself), simply letting anybody who hasn't heard the news that just about every website needs more than CRUD (Create Read Update Delete), a shared database connection and other simple tools frameworks provide.

What's so great about a CMS?

Almost every website on the planet needs these key features:

  • Content management (obviously!)
  • Users/roles
  • Built-in session handling
  • Advanced theming
  • Categorization/taxonomies
  • Site search
  • Widely available modules (add-ons, plugins, etc)
  • More formalized code development rules
  • Search engine friendly code/urls

While not every CMS has all of these features, many do. Nor does this mean a faster start on new projects but faster evolution of old projects. Open-source Content Management Systems outpace the competition in terms of development time, available features, and fewer bugs every day of the week. That means lower development costs and faster release cycles - and it means outperforming the competition.

Give me some examples

For people looking for specific platforms that fit the CMS profile, here's a short list:

  • Drupal
  • Joomla
  • WordPress
  • Plone
  • ModX
  • Hippo
  • Concrete5
  • Radiant

There are literally dozens of others to choose from, built in everything from Java to Ruby.

So if you are developer and you are still programming using a framework or (god forbid) a totally custom app, take a few weeks and take a content management system or two for a test drive. You will likely be shocked by how much excellent code is out there for the taking.

Date posted: September 24, 2010

Comments

I am both a designer and developer, and I love Drupal. However I have been asked by a client to recommend a CMS for multimedia - it's a Design school specialising in still photography and video so they need a CMS that is great for streaming large files and working with images.

Drupal 6 is terrible for images (Even simple galleries need upwards of 15 modules and fine grained access control is still a dream), and Drupal 7 still hasn't really completed the Media module. I have used Joomla and I really don't like it. Can anyone tell me what Wordpress is like for a website with mostly video, audio and image content?

Wordpress has strong image capabilities. They recently updated the upload & edit systems & its really good - its nicely made too with a backbone based architecture. One thing to consider is the image sizes / thumbnails you are going to need. Its worth having a good think about all the sizes you will need and specifying them in the functions.php file. WP doesn't create them on the fly, it makes them on upload, so its slightly tricky to change thumb sizes later (although there are good plugins to do this)

For video, its fine. The main thing you need to consider is formats, and how you are going to playback movies - I've used longtail player before which has been really good - it plays html5 formats & has a flash fallback so all devices are supported. There is a WP plugin for longtail that gives you shortcodes etc to place movies in pages.

Frameworks should be used for applications not websites.
E.g at work I create applications that run through the web (previously desktop). I think its fine to use frameworks for this sort of project because CRUD is mostly what you need along with roles, logins, and capabilities.

Besides that you may need the odd "do this when x happens" and other event driven features but a framework will suffice in most cases such as .NET MVC in my instance.

For websites, use CMS like Drupal, Joomla, Wordpress, Dot Net Nuke, etc depending on your language/hosting preference.

From my experience CMS are only much use for companies that tend to pump out a similar type of site (e.g - a typical content site) and even then there are issues.

At my previous place of employment we tried Drupal for a while, but we found it to be too inflexible, it was fine for a mid traffic bog standard content site, on the other hand anything a bit out of the ordinary or that had a lot of stuff that could not be cached to death was a problem and vastly inferior to a framework.

There were also other issues, upgrading between versions was a joke, many modules were full of bugs that were either never updated or took months for the owner to address, which somewhat defeats the point if we have to re-write half the modules.

Furthermore the actual code was not very good, rather clunky and the general view was not a pleasure to work with both from programmers and designers who hated the spaghetti like template system.

Then there was the performance... On a busy site if you could not cache the output to death the performance is abysmal, both in terms of actual speed and in regard to the sheer amount of server resources it takes compared to a typical framework.

Thankfully it was decided Drupal (or any other CMS) was not going to cut it and just increased overheads. training requirements, inefficiencies, etc

It's 2013 now and it turns out that it's the CMS's that are dying.

It's 2013 and Drupal 8 is built on the Symphony2 Framework.....

That last word says framework.

Personally, I feel that lightweight CMS systems that don't force you into the developers paradigm about how a CMS / Site should be implemented are key. You can use these on top of a framework and have your own custom logic and biz rules without being locked into some massive system that has a huge learning curve. Umbraco, Drupal, Django, etc... all these I have used and I've felt they are making their end users develop in a way that they're not used to. This can be a problem. Sure, once you learn the system and read a few books, tutorials and have gone through the trial and error process of implementing the system productivity may increase when compared to building a site from scratch.... but as a full stack developer I already have enough on my plate to learn and I don't want another system to learn if I need to deliver the product asap. MrCMS is a .NET MVC lightweight CMS that you can use w/ an existing site. It adds roles, editing, etc... but it doesn't force you into anything. I can easily add a standard page w/o utilizing it at all. I also like the freedom it provides in the realm of themeing and UI design. I can use Bootstrap, knockout or angular or whatever it is I'm comfortable with and it's not as prohibitive as other full blown CMS systems (i.e. Umbraco or Orchard). Just my two cents.

How long would it take you to build your web framework from scratch? with 2 developers full time

I would probably rewrite it all from scratch without borrowing code from too many other place

I worked with drupal5 to drupal7 and in this years I think drupal was a good solution for building websites.

Then I rewrite some private projects with a php framework and I say that is most of the time the way to go.

For example views is a great module but if you code your db queries by your own in the code (with helpers like Active Record Pattern or doctrine or framework query builders) is much faster and clearer.

I think we're witnessing the end of Drupal now. As Drupal 8 comes out, people will realise that for all the effort it will take to learn how to manage Drupal's bastard symfony child they would be much, much happier just using a mature real framework like Django or Rails.

I'm expecting an simpler MVC framework will soon arrive and blow both Drupal and perhaps Wordpress out of the market...

As time goes on Drupal seems ever more desperate. All you ever hear from them is they need to recruit more developers (lots of core devs have left, lots of others are looking at more modern alternatives) and there is no real recognition of the massive issues with Drupal ie it's sluggish, a nightmare to work with (just try getting data out of an render array compared to doing the same with any good framework), the form api and the database api are basically just a thorn in your side, and the logo is just totally uncool.

Look at your comments system below, if i want to customise it, i first have to remove all that rubbish about text formats. That's not what a framework does! You don't spend your time removing parts of a framework, you build on top of a minimal base...

Drupal paid my bills once but it was forced on me hence my distain for it. It is good for some projects, ie cheap cms where hosting price not an issue, but their marketeers would have people believe it should be at the core of NASA space program...

For websites, most definitely. It makes sense as they (CMS) cover probably 100% of what you will ever be asked for in a web site. But I found in my experience that if you are building an application that happens to use the web to communicate with the client then you are better off using a framework - particularly if you will be the person managing the content, categories, business rules, etc. A CMS just wont bend the way you want it to for this and you find yourself building custom PHP functions/code and forcing it into a module for the CMS.

In Drupal, you often create sites for people to manage and you end up managing it!

LOL just saw this now "Drupal's bastard symfony child" how offensive can you get?! I feel sorry for Drupal 8 like its a person. Poor little droplet!

I do agree with your Drupal opinion though (except the offensive bit!)

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <cpp>, <java>, <php>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Metal Toad is an Advanced AWS Consulting Partner. Learn more about our AWS Managed Services

About the Author

Joaquin Lippincott, CEO

Joaquin is a 20+ year technology veteran helping to lead businesses in the move to the Cloud. He frequently speaks on panels about the future of tech ranging from IoT and Machine Learning to the latest innovation in the entertainment industry.  He has helped to modernize software for industry leaders like Sony, Daimler, Intel, the Golden Globes, Siemens Wind Power, ABC, NBC, DC Comics, Warner Brothers & the Linux Foundation.

As the CEO and Founder of Metal Toad, an AWS Advanced Consulting Partner, his primary job is to "get the right people in the room".  This one responsibility is cross-functional and includes both external business development functions as well as internal delegation and leadership development.

A UCLA alumni, he also serves in the community as a Board Member for the Los Angeles Area Chamber of Commerce, the Beverly Hills Chamber of Commerce, and Stand for Children Oregon - a public education political advocacy group. As an outspoken advocate for entry-level job creation in tech he helped found the non-profit, P4TH, an organization dedicated to increasing the number of entry-level jobs in the tech industry, and is in the process of organizing an Advisory Board for the Bixel Exchange, a Los Angeles non-profit that provides almost 200 tech internships every year.

 

Have questions?