Worked with Laravel
Worked with Drupal
Built a feature
Worked with Open Source
+2

What is the difference between a CMS and a framework?


I hope this post helps out with making a good choice when you need to. I'll make a comparison between deploying a CMS and using a framework for your project.
 
In my career, I have often had to make a choice during a consultation with the client between using a CMS or a framework. Often the customer in question looked at me in despair and then asked what the difference was.
 
I want to elaborate on this so that, after reading, you have a little more knowledge about the pros and cons of both options.
 
I work with the framework Laravel and when I need to use a CMS I'll use Drupal. Both have their pro's and cons. So there is never an absolute winner when it comes to this question. It's the situation that needs to determine this.

But, I must admit, the last year almost all projects I've done were done with Laravel. Maybe It's because most of the projects I work on have lots of custom requirements.
 
CMS
You have probably already heard of various CMSs. Well-known systems are Drupal, WordPress, Joomla! & Unbraco. If you choose a CMS, a developer can have it running within no time. A good CMS ensures that you can manage the content of your website or web application in a user-friendly manner.

Framework
The framework is often a favourite if you ask the programmer. This has to do with the fact that a programmer likes to develop as much as possible himself and wants to keep full control. A framework allows him/her to do so, but with a lot of handy tools to create the final product quickly.

As an example, I'll compare both scenarios with building a house.

Building a house with a CMS
If you (the software developer) would build a house with a CMS, this can easily be compared to buying a brand-new, finished house. You choose the CMS, have it installed, and it stands. (If it is an open-source CMS such as Drupal or WordPress, it will also cost you nothing).

In this comparison, look at the CMS as the project developer of your new house and the house as your application. When designing the house, the project developer had to take into account the average wishes of all residents who will buy this type of house. Perhaps you, as one of the upcoming house owners, mostly agree with those wishes. Then you won't need to adjust much after you buy it.

The only thing you still have to do to complete your house is painting or putting wallpaper on. But what if you have large or complex deviating wishes? Then you have to look for a construction company that can realize those extra wishes for your house. This costs you more time and money and sometimes your wishes are not even possible in your new house. You also have to find a contractor who can work together with your project developer.

This is the downside of working with a CMS. I, therefore, recommend that if you are faced with this choice, think carefully about your wishes and whether they match the CMS. If the gap between your wishes and the possibilities of the CMS is not too big, a CMS can be a very good choice.

Building a house with a framework
If you were to build a house with a framework, I would describe it differently. You can compare a framework with a nice piece of land that is very suitable for your house. You will use three electricians, a plumber, four construction workers, two painters, an excavator, a crane, and all the other people and tools you need for building a house. You have all that at your disposal. In addition, you always have your favourite hardware store nearby if you are missing something.

You can give everyone instructions to create your house according to your wishes. Your options are so extensive that you can choose the toilet bowls that the plumber has in its van, or you can buy the very nice one from the Hardware store. It is probably already clear: the ideal house that optimally meets your needs can be realized quickly this way. You will have to manage the workers and make decisions about everything. This will cost you a little more time.

And building a house without help?
Without a CMS or a Framework, building a house is very unwise. You then have to make your own paint and pluck the neighbours pig to make a brush from its hair. Poor pig. ...

Conclusion
Working with a good CMS is a good choice if you do not have specific requirements or are willing to make compromises. You can then achieve a considerably cheaper solution.

However, do you have large plans with your application, and do you have specific demands? Then you better opt for a good framework.

(This is an updated version of a Dutch blog I wrote on blijnder.nl)