What is the difference between a CMS and a framework?

In this article, I make a comparison between deploying a CMS and using a framework for your software 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.

In this blog, I want to elaborate on this so that after reading you have a little more knowledge about the pros and cons of both options.

At Blijnder I work with both the Laravel framework and Craft CMS. Both have their advantages and disadvantages. The requirements of a project always determine which one of the two would be the best choice.

CMS

You have probably already heard of various CMSs. Well-known systems are Drupal, WordPress, Joomla!, and Craft. If you choose a CMS, a developer can have it running within a short 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 the favorite option if you would ask a 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 gives him/her the opportunity to do so, but with a lot of handy tools to create the final product quickly.

Let’s build a house

To paint a good picture of the differences, I usually give my customers the comparison of building a house.

If you (the software developer) would build a house with a CMS, this can easily be compared to buying a brand-new, completely finished house. You choose the CMS, have it installed, and it stands. (If it is an open-source CMS such as Drupal or WordPress, you won’t even have to purchase it).

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 has to take into account the average wishes of all residents who buy this type of house from him. Perhaps you like the average wishes, perhaps not.

With a CMS you get a ready-made product that you need to adjust.

The only thing you still have to do to complete your house is a little bit of paint if your wishes align with the average wishes. But what if you have large or small 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 the new house.

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.

Let’s build the 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. To build it you will need some electricians, a plumber, a couple of construction workers, painters, an excavator, a crane, and probably a lot more other people, tools, and expertise. In this example, a good framework would be the land, combined with all those workmen, tools, and expertise all available to you.

With a framework, you determine everything yourself.

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 everything yourself and make decisions about everything. This will cost you time and energy.

And building a house without help?

Without a CMS or a Framework, building a house would be very unwise. You then have to make your own paint and pluck the neighbor's pig to make a brush from his hair. Do you get the picture? You need to know and do everything yourself.

Conclusion

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

However, do you have big plans with your application, and do you have high demands? Should your application communicate with other systems, or should everything be very scalable, or retain your flexibility? Then you better opt for a good framework.

Laravel framework and Craft CMS

My tools of choice are Laravel and Craft.

I have chosen to work with Craft CMS because it has the perfect balance between providing the basic needs you would expect from a CMS, has full flexibility on the front end of things, it handles like a solid modern application which makes it a proper choice for larger applications, and let's not forget the plugins.

When I need a framework, the choice is obvious. Laravel is currently the most used framework and I think for a good reason. (Warning, nerdy developer terms coming up.) Laravel has a huge library of modular functionalities ready to use or extend, due to the large user base lots of knowledge sharing, Eloquent (champion of ORM), a CLI tool that includes a lot of scaffolding features, and a lot more things that make developers happy.

I like to combine Laravel with Nova. Nova is an administrator panel builder for Laravel. With that, we can realize a management tool very quickly which compensates for the lack of a CMS UI to manage your data.

This is an updated version of an older (dutch) article that got lost in the dark dungeons of the internet.

More info:

Craft CMS: my #1 content management system

Laravel Origins: A PHP Documentary

Learn Laravel on Laracasts

CraftQuest is a great Craft CMS learning resource

--

--

Freelance web developer @ Blijnder. Passionate developing applications in Laravel and Statamic CMS.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jonathan van Rij

Freelance web developer @ Blijnder. Passionate developing applications in Laravel and Statamic CMS.