Content Management System
If you search on Google, you will find hundred of Content Management System and thousand of suggestions. How to choose?
I would share with you some thought about CMSes, then (perhaps) you could have more elements to take the right decision.
- The platform: the most used is the LAMP platform (Linux + Apache + MySQL + PHP). You could try other solutions but probably you will spend more money.
- Open Source or Closed Source: today to opt for a Closed Source solution is a nonsense. Why you should pay for something you can get for free and with more freedom?
- Architecture: I read a lot of pros and cons about this or that CMS, but I'm worried about web applications which still use Procedural style coding or that are not based on an MVC logic. Those can run fine but: if you need to change something how many files you have to study to understand how it works? How many money you have to spend? Life is too short for that.
- The market: on the market you see few solutions with a large base of users. The most part of those users are copy&paste users. Not really developers, they know how to install the CMS, install a theme, install a plugin, do a some basic set up and their experience is ended. If the client ask them some feature that requires a deeper knowledge the game is over.
So the market is drugged by the ecosystems behind these CMSes: themes, templates, plugins and even my grandmother can live the illusion to be a developer.
To be clear: is a great thing to have so many resources, what I'm saying is that we can't judge the goodness of a solution only with the market share.
- Long term vision: when someone plans to adopt a CMS usually has a middle term vision (between 3 and 5 years). What can happen?
- the client hasn't particular needs, the basic features of a CMS are enough for him. Maybe after five years will ask you a restyling.
- the client discovers new needs, then will ask you new features. A small simple website must be changed in a complex web application, feature after feature. If you can't add these new features you could rewrite all from scratch with another CMS (who will pay for that?) or you lost the client. A good client.
What I do
I'm a developer, so the time is a precious resource.
- I can't follow too many projects, I need one solution that can fit for almost all possible needs. If the client ask to use a particular library, add a connection to a remote DB, create an API for a mobile APP, add pages for Chinese or Arabic clients I have to be able to answer: yes, sure. If a project will grow I must be ready.
- I can't restart from the begin if the maintainer of a CMS decides to change the logic of the project.
- I can't waste my time to discover how a CMS works.
For those reasons I wrote my own CMS, X3CMS.
What is a CMS?
CMS stands for Content Management System (see Wikipedia), to be short is a web application that allows to NOT technical staff to manage the contents of a website.
Why to use a CMS?
Today there are still companies that sell static websites, where contents can not be modified (or modified only for a fee). I know, that's incredible but true. When you have to manage large websites which need continuous updates made by more people there are no other ways than to use a CMS.
Also to use a CMS is the most affordable solution for small businesses or freelancers who can, with a modest investment and with a secure cost, open a communication channel to customers virtually limitless (this site is an example).