Over the years there have been many debates on whether an off-the-rack, open source content management system is a better solution than a tailor made solution. More often than not, this dabate will always lean toward open source applications and why wouldn't it? With open source, you get a massive community support, a plethora of plugins and avid fan-boys. The sheer options of open source systems today is overwhelming with Wordpress, Drupal and Joomla leading the pack. What about e-commerce? Applications such as Magento provide a great platform with the backing of 1000s of developers. Fact is, in this day and age, its easy to setup a website no matter what your MO.
So why would a client even consider a custom CMS when there are so many options out there? Honestly, custom CMS solutions are really underplayed based on the fact that a lot of clients have had bad and more importantly, rigid experiences with them. This however isn't the most fair assumption. A lot depends on the agency/developers building the CMS and this can make a world of a difference. A well coded custom CMS can out perform an open source system in terms of performance, scalability and security if done correctly.
While open source applications are great, there are some important factors you need to consider before you decide to go all guns blazing into the web war field. Read on to know how a custom solution is probably the right choice for you in the long run.
Quick Note & a word to the wise.
The following points only hold true if you're developing a custom CMS through a professional agency or a developer who is following software life-cycles and a defined development & deployment process. If you're looking at getting a custom solution developed by a novice programmer, these points will not hold true.
The Jargon : Custom CMS and Proprietary CMS are two different things.
First things first, lets clear this up. A custom CMS is a system built from ground up, written exclusively for you, with no tie-ins or obligation to go back to the developer to take your product forward. A proprietary platform is a system that is offered by a developer or an agency which cannot be expanded, scaled or modified without the direct intervention of the agency concerned. Make sure you know what solution is being offered to you. In most cases, a true custom CMS would only have one limitation, that it can be used with unlimited rights but for the concerned project or property only. In essence, you as a client own the custom CMS you paid for. That is not the case with a proprietary software where you merely have permission to use the system for a fixed amount of time.
Make sure that the solution you're receiving is owned by you. That way, you can always take the platform to your 'future' in-house team or developer without any legal hassles or road blocks.
Analyse your requirement
What sort of website do you want? Is it a simple blog or a run-of-the-mill e-commerce shop? Is it a community website with a forum and what not? How unique is your proposition or are you just doing something that is already out there but just under your brand name? - These are very important questions you need to ask yourself.
Essentially, if your website has a simple objective, an open source CMS might be right for you. What happens when your idea might be the next big thing and requires a truly unique feature set? Chances are that there might not be something out there that does what you want and that you can download and install. Here, you might just be better off choosing a good developer or agency with strong skill sets to build your next big thing.
The Architect matters
You have design agencies and then you have design & development agencies. Design agencies with limited development expertise as compared to an all out development agency will prompt you in the direction of an off-the-rack system. Agencies with strong development expertise will simply build it for you? Why? Because they can! Since they have the skills and know the language inside out, it makes sense that to write a well documented code-base and build it from ground up instead of going crazy customizing a ready made system.
Open Source if for everyone, Custom CMS is for YOU
Think of it this way, open source applications are standardized web based applications and like any new system, they require you to spend time on them and learn them. Often agencies up-sell and customize these open source applications to clients for an attractive price and the outcome is that the client needs to learn the new CMS and work in the fashion that the system provides.
Now with a custom CMS, the entire system is built around the client, the client's need, convenience and minutest of specifications. Instead of spending time learning a system, the client has the liberty of working with a system that was built from ground up to work as the client would want and not the other way around.
It's like buying a shirt as vs getting it stitched for you. If your needs are conventional and you're willing to spend the time required to learn the system, a ready to run system might be good for you. If your website or application plans are ambitious and tilt towards being different from the crowd, go custom.
Open source systems are built to cater to a massive range of clients. It is because of this generic client base that these applications have a fairly large code-base with a lot of functionality that might not be specific to you but might work wonders for another user of the system and vice versa. In many situations, this translates to unnecessary code which in turn results in a performance deficit over time.
Custom CMS solutions are written for you in specific with a defined functionality set thus allowing for a lighter footprint. These system provide for a better performance simply because the amount of code written and database calls are lesser. Essentially, you get what you need and not the extras that you will probably never use.
The Plugin Peril
Customization is a must with any website and can really transform a plain jane solution. Sure, given enough time, you might find someone to find, download, install and customize enough plugins to get you closer to your goal.While your core open source application is written by a strong team of skilled developers who have built the system through massive amounts of synergy with each other, plugins for applications like Wordpress are being built by 1000s of developers world over, each with their own coding style.
The more your plugins, the higher the possibility of conflicts between them. Additionally, you need to make sure that all your plugins are up-to-date. Over loading your website with plugins to get it to do what you want will eventually cause a break which may be a bigger problem than you signed up for. If you run into critical errors or major bugs, you might find yourself in a situation where your developer throws in the towel and tells you there's nothing they can do and that the system is just broken.
If you're looking for a customized solution, you're better off custom building it from the get go and avoiding breaks in the system later. With custom CMS applications, you're paying for a team to build, assemble, customize and extend your system. Moreover, a good agency will write code for you that is filled with inline documentation & comments making it easy for any decently trained developer to pickup and extend in the future.
Maintenance, Problems & Critical issues.
Open source applications have been tested by 1000s of developers so it's not going to need any upkeep. Right? Wrong! Just because you use an off-the-rack system doesn't mean it comes with no maintenance overheads. Upgrades, bugs in existing code, plugin conflicts, breaks in the system, customization etc etc all require skilled developers to fix and maintain. Since developers can't live on love and fresh air, you will need to bear the cost of paying a developer to do this for you.
Developers who create websites using open source applications will tie everything together for you and push it out the door. Since they haven't written the code-base themselves, you can bet your that they don't know it inside out and honestly, they can't be expected to. Everything is great till something breaks and that is when tracking down the problematic code or conflicting plugin can be a mammoth task which will cost you in man hours. It's worse if you need to wait for a plugin update or new application version to fix the issue.
Most custom CMS companies on the other hand will provide you with a basic maintenance and bug fix warranty for anything between 30-60 days of launch. Since the application has been created for you and from scratch, they know the code-base inside out and know exactly where to look when there's an issue. Further, documentation can be sourced from the agency for an addition fee, allowing you to hire your own in-house team or a different agency in the future.
Security is a major concern with all clients. Most popular off-the-rack applications release security updates and fixes regularly. The issue is that open source applications, as the name suggests, are freely available for download. Sites built with open source backends are easier to break into because the person breaking in already has the code-base with him and knows where to look for security holes. This is the single biggest issue with open source and security.
Websites, Mobile Applications & Mobile Sites with one backend system
While there are open source backends for all of the above. with a custom CMS, you can easily build one universal backend for multiple platforms complete with webservices, JSON data sources and XML databases to the T of your requirement or goal. This is a huge benefit of getting a system built from ground up by a professional developer or agency.
While popular applications like Wordpress & Drupal have mobile themes, it's not the same as building a powerful backend that with dynamic & flexible webservices that allow handling of all the parameters involved with serving audiences on mobile platforms such as smartphone and tablet apps
Custom CMS applications are expensive.
With an open source application, the initial cost is lower. They are essentially free but you still have to pay someone to set it up for you. Consider this though, an open source CMS, plus plugins, plus modifications to code, plus cost of maintenance(updates) and fixes can potentially end up costing you quite a bit over time too.
A custom CMS costs more upfront but can be used over years. A well built Custom CMS that follows a standardized development process will also help you keep your running costs low till you decide to upgrade your feature set again.
While open source CMS solutions are great and it is foolish to say otherwise, the inherent issues, multiple coding styles, plugin conflicts, performance and maintenance gives you something to think about when you're looking to build a website, mobile application or mobile site that is not your average Joe. Choose an agency wisely and you'll never need to look back