We recently decided to develop a fast, flexible and modern framework for building websites and applications that has a CMS module built-in to the core. We wanted a system that was as powerful and flexible as an established framework that also provided CMS functionality for no fuss website deployment.
It’s easy to use, maintains the separation of business and presentation logic, and supports extensions through the use of plug-ins.
However, whenever we’ve gone past our preliminary testing we’d always come across a blocker in terms of our specific requirements:
- some were too slow or bloated
- some were very promising but underdeveloped and lacking in features
- some were not being actively developed or did not receive enough updates
- most did not have a CMS within the core which was one of our key requirements
So after much frustration and with a little deliberation we put together requirements for our “ultimate” tool for building websites and applications.
We included all of the best qualities we’d found in modern frameworks and content management systems we’ve worked with in the past. We also reviewed case studies of projects we had worked on and came up with a nice list of features we’d like our “ideal” content management framework (CMF) to have.
Here’s a quick run-down on some of the features (it’s pretty technical so feel free to scroll past this if this sort of information isn’t your thing):
- Model-View-Controller organisation of code
- Very quick database abstraction layer
- Templating system that supports regions and snippets (reusable blocks of code to avoid duplication and allow greater flexibility)
- Plug-in support
- Quick installation
- Multi-layered configuration module that has system-wide and application-wide configuration repositories
- Database scaffolding features
- Automatic generation of ORM layer objects
- Customisable clean URLs
- Upgradeable system core that allows for easy upgrades of already deployed projects without affecting the custom code that each project may have required
When undertaking a MVC approach to coding there is a clear set of programming rules for a developer to adhere to. This means that any developer working on a project who is aware, understands and follows these rules should have no problem getting used to our framework.
This is particularly beneficial when one considers that we developed a built-in CMS module for our framework that is integrated within the core. You don’t have to use it (as it can easily be disabled) but it is there to use should you need it.
The benefits of implementing a MVC approach for a CMS include:
- a logical structure in place reduces the learning curve for developers unfamiliar with our framework
- the eradication of a clients lock-in to us as a technical supplier
- simplifying the modification of existing functionality and integration of new functionality
Here’s a quick overview of the process we would use for a client that requires a website or application:
- We do a clean install and initial configuration of our CMF under a development domain name – this gives you an ability to add/edit/delete content on your website to be (that currently has a generic look – we have not implemented your design yet). This also gives you an ability to track progress whilst your website/application is developed.
- Developers can now start working on the design-independent features of the website or application.
- Designers can now start implementing a signed-off design for the website or application.
- Once the design has been implemented, developers can start working on the design-dependent features.
- Should you require a change made to the signed off plan (providing it’s been approved by BCM) that won’t be a problem since our CMF was built to accommodate changes without having to re-do large chunks of previously completed work.
- If you require a feature in the administration module of our CMF that we don’t have it is highly possible to add it – you just need to discuss the impact on the timing and cost of delivering your project.
What can I say, we are really happy with the CMF so far (version 0.2) it has been powering our website for the past 6 months and has held up well.
Needless to say though, we are not locking ourselves (and more importantly our clients) in to using our CMF, as it’s just another tool in our arsenal. We’re proud of our technology agnostic approach and just because we’ve developed an in-house tool this certainly isn’t going to change.
We’ve got plenty of experience with numerous different content management systems and frameworks and will always undertake the necessary research to see which tools are most suited to the needs of a project. Put simply we will always use the right tools for the job.
By the way if you are a developer and interested in taking a peak at what we’vc developed feel free to get in touch. We plan on open-sourcing the code but to be honest we want to do this properly and it isn’t a priority so it could well take a while.
Till we do, anyone wanting to learn more, take a nosey or get involved with taking this further just give us a shout!