Managing content on the web is big business. Back in the early days of the internet, very few sites had complex data management requirements. A lot of web pages were relatively simple static pages of content, hand-coded and uploaded for display at a given web address.
These days though, many more sites make use of content management systems to permit their administrators to log in via a secure form and add/edit/delete content, usually in tandem with a clear policy on content for the benefit of e.g. search engines or social media.
Two content management systems that I use regularly are WordPress and Statamic, and they do a fantastic job at providing a client with a straightforward, user-friendly interface which they use to manage content. They also provide a developer with a powerful set of tools to build the structure and design of the site to match a project’s specification.
Both of these systems work along the same basic principle – a core set of functionalities (e.g. "editing posts/pages", "user login/signup", "viewing site activity" etc.) are built into the system from the start. These provide the basic foundation on which the site is built.
Content management systems make some basic assumptions about what it is that both the client and developer will want them to do. They’re a pre-built structure, of sorts, onto which a fully functional website can be constructed.
Think of a content management system like a prefabricated house. You get the walls and roof already constructed, manufactured off-site. All you need to do is get someone to piece them together and customise to your tastes.
A CMS gives you functionality out-of-the-box.
A framework on the other hand, provides the tools to build something similar to a content management system, but assumes that you’ll be starting from the ground up. You don’t get the "walls" or "roof" preconstructed, instead you get a very thorough and effective set of blueprints which you can use to build your website’s structure.
A framework requires more specialist knowledge to construct a site from, and it can take longer to plan the build fully and construct/test, but in the long run will provide you with a completely custom product that can be tailored to match your requirements very precisely.
One such framework I work with regularly is Laravel, and this is a fairly recent product, with a lot of modern features and very customisable structure.
Frameworks give you very little out-of-the-box but make it very easy to start constructing initial structure quickly.
Some immediate concerns which are raised, as with any project, revolve around:
Essentially, how much will this cost, and how long will it take?
On the surface, it may appear as if a framework-based approach would be more expensive than using an off-the-shelf content management system.
Although in many instances that is true, in others it can actually be the case that a framework-driven approach brings benefits over a CMS that aren’t immediately obvious.
For example, a project I worked on recently involved the design, development and build of an internal data management tool to be used by a client’s staff, both locally and in remote locations. The interface and layout requirements were very specific, and the data management functionality precise.
A CMS such as WordPress does have the capability to provide a solution for this client’s requirements, but to do so would require working around the inherent restrictions in place within the core code of WordPress.
In effect, the solution would require working around existing, pre-defined solutions. It would be like taking the structure of a house apart to build another, different house.
Utilising a framework, the task was made simpler. A key thing to note here though, is that proper and thorough planning is a cornerstone of making this process work. With expected outcomes and deliverables properly mapped out from the start, it’s possible to build up the precise and exact functionality required, without having to worry about working around the existing structure of a CMS
So, to summarise – Frameworks are tools which can be used to construct highly specific apps or sites. Content management systems are tools which make assumptions about required functionality, and provide a "best fit" approach.
Both are highly capable solutions for specific projects.
A final point – some content management systems are actually built using modular frameworks, and as such can function as both a CMS and a framework. One such tool is Drupal, especially the latest version (8) which is built upon the very capable framework Symfony – which as it happens, is the same framework upon which Laravel is based.
"Do I need a CMS or Framework?" isn’t a simple question to answer for individual situations. But I can help you to make the right decisions in your project choices. In most cases, and for a lot of clients, I find that they aren’t even concerned with the choice of platform, but I feel that it’s nice to outline the pros and cons of any approach, especially to give an indiciation of budget and timescale considerations.
Get in touch if you’d like to discuss further.
Robin is the dedicated developer behind Solarise.dev. With years of experience in web development, he's committed to delivering high-quality solutions and ensuring websites run smoothly. Always eager to learn and adapt to the ever-changing digital landscape, Robin believes in the power of collaboration and sharing knowledge. Outside of coding, he enjoys diving into tech news and exploring new tools in the industry.
If you'd like to get in touch to discuss a project, or if you'd just like to ask a question, fill in the form below.
Send me a message and I'll get back to you as soon as possible. Ask me about anything - web development, project proposals or just say hi!