There are lot of articles who are talking about Frameworks and CMS systems. What to choose? Which is the best?

However I wanted to write an article from a totally different perspective. First of all I want to make sure that developers and customers understand the difference between the terminology “CMS” and “Framework” nowadays.

Some theory first

When we use the terminology “Framework” we are more often talking about Web application framework . A web application framework is simply based on coding. If you are a programmer or a web developer that loves coding you often choose a Web application framework for your projects.

A CMS is a Content management framework and it is based on the modules rather than code. Anyone can handle a CMS as it doesn’t require any coding knowledge. Of course programmers can also choose a CMS as they can do their job faster.

There are lot of fights…

There are lot of misunderstandings about what a framework and what a CMS can do. Lot of fans that use CMS they are saying that “We can do everything with a CMS” and the fans of the frameworks are “No we can do everything with a framework” and so on… As a fan of frameworks of course I will have the same opinion but actually this is not true! The truth is that as we use the same base (PHP,RoR,python,. NET… e.t.c.), we all can do everything. Even the myth that CMS doesn’t use a good structure isn’t truth. For example Drupal 8 is based on Symfony framework, a very good object oriented web application framework.

So what do I choose?

Nowadays the CMS is more popular than the Web application Framework as it is really easy to use it. Even if you don’t have programming knowledge you can install and create a whole website with just a CMS. So what to choose?

It is always about four basic things that you have to think before you choose a framework or a CMS in my personal experience:
1. How much time you want to spend?
2. What do you want to do and how flexible has to be this project in the future?
3. How much money (if it matters) you will take after the end of the project.
4. What the hosting environment will be

For the customer it doesn’t really matter what tools you will use. The thing that matters is to have their job done. So let’s have an example:

I will explain to you my choices about two personal projects and one normal project. This blog and www.grocerycrud.com. First of all I am a PHP web developer so I can choose either a PHP framework, either a PHP CMS.

So for this blog that you are reading right now, I used WordPress as:
1. I wanted to spend as less time as I could as it is a simple blog
2. I didn’t want to do anything extreme. Just the usual. SEO, caching, comments, nice design and less spams!
3. I will not make any profit for the creation of the project. So I don’t have as a criteria the money.
4. Free to choose.

For grocerycrud.com I choose Codeigniter framework as:
1. I wanted to spend a normal time to do it. Not too much as this is a personal project
2. I wanted to be 100% extendable as I am changing the structure all the time with new ideas. For example now I am preparing a new mini website inside the grocerycrud.com (www.grocerycrud.com/image-crud).
3. Still the money doesn’t count here as it is a personal project
4. Free to choose

For www.dailyfx.gr I chose Codeigniter framework as

1. I had only 1 month deadline for me to do it from scratch
2. It was a system that the clients wanted some extremely custom webpages (such as with an internal connection with java applet charts). I didn’t choose wordpress or drupal as it would require more time to customize all of these unique needs.
3. For money nothing more than my normal monthly salary. So the money was not something to motivate me
4. Just another shared hosting

I want to investigate more

As I said only in my personal experience are 4 simple things that I have in mind but this is only because the outsource projects that I have are often small projects so that’s why I have only these four things in mind. Of course if I want to investigate more time I think a Web Application framework is the solution and I can give you much more criteria to have in mind. As the Symfony webpage says:

You’re making progress and that’s a good thing! You already know that you are going to use a framework to develop your site or your application. But which one? Here is a checklist that you can use to avoid making a mistake:

 

So there are 10 criteria for choosing the correct framework. You can take a look at this article as it is really straight forward about what are the real criteria to actually choose a framework. So if you really want to investigate to a framework for your big projects, have in mind that it is a long-term commitment, so make sure that you make the right selection… for you!

What about a CMS?

On the other side it is not so bad to know programming and also be a “CMS guy”. The bad think about it is that they are many “CMS guys” that don’t have any programming knowledge and think that they can do everything with a CMS. This is also a myth! When I was talking before that with a CMS you can do everything as you have the same base it also depends if you have some basic programming skills of course. If not then you can do everything as far as the programmers/web developers let you have it. So my opinion is that if you are a “CMS guy” and you don’t have any programming knowledge it is good to start learning some basic stuff and try to create your custom plugins for the CMS from scratch.

And finally a conclusion…

So as a conclusion I have to say that it always depends of what you want to do and how much time you have to deal with it. I believe that every tool is build for a reason so as many tools you know (frameworks or CMS), so flexible you are as a professional developer. So it doesn’t worth it to be a CMS or a Framework fan. Just choose the best tool for you situation and that’s it.