A web application or CMS framework is a collection of reusable libraries and components that speed up development. It allows you to focus on business logic and takes care of the routine tasks that are common to most applications. Almost all applications will need features like member registration system, password reset, database libraries, payment system etc. Using a framework will give you these features out of the box so you can focus on what’s important to your customer.
Here are some reason why we should always use a CMS or application framework for your project -
- It speeds up development
- Gives your code a structure that others understand
- Allows you to use the work of others by defining a standard application protocol
If you are not sure if using a CMS is the right choice for you, think of riding a bicycle from Ottawa to Toronto. Hand-coding an application from scratch is like riding a bicycle to Toronto. Why bike when you can drive?
Below are some features that we should look at when choosing a CMS framework for a project -
- Content structure
- Social integration
- Event notifications (hooks)
- User roles and privileges
- Model View Controller (MVC) architecture
- Language support
We can prepare a feature matrix of different CMS frameworks to understand the strengths and weaknesses of each. However, looking at the feature set and capabilities of a CMS is not enough. We need to know our customer and project really well to find the best fit. Over time this will become second-nature and we would know right away what would be a good fit for a project.
To get started, try a few CMS’s and see what might work for you and your target customers. You cannot learn all frameworks, so pivot on one or a few that will allow you to serve your customers well. Set aside some time to learn a new feature everyday – there is no shortcut to success. At Grype we have chosen to work with Drupal, ExpressionEngine and WordPress as we found these to be a good fit for our target customers. We also work on C# and ASP.net. We should also look at customer demographic and the vertical industry you are serving – some solutions are just not meant for certain industries – for example, you do not want to boat to Toronto!
Choosing between an open-source or a commercial solution is really up to you. We use open-source quite a bit at Grype because it gives us the “freedom” to do things that commercial solutions don’t. If you are using open-source, then don’t just take but also give back to the community. I think the universe has a way of rewarding those who give back.
Also, if you are just learning a new CMS and wondering “what” to learn, think of what will bring value to your customers. You won’t get paid unless your expertise provides value to someone!