Note: The original title of this post was unclear about the term “custom CMS.” I should have clarified that I’m discussing a custom CMS that is developed, hosted, and controlled by an external vendor, not a custom CMS you might build yourself for your own use.
If you want to build your own CMS, then consider my book: Web Content Management: Systems, Features, and Best Practices. I explain all the features of the modern CMS, so you’ll know what you’re getting yourself into.
Because I keep seeing the same problems happen over and over and over, I’m going to make this claim:
There is NO benefit to you in being talked into using a custom CMS which is hosted and controlled by a web development shop. DO NOT AGREE TO THIS. EVER.
We’re seeing this again and again: an earnest client is talked into letting a web development shop build their site on an in-house CMS, which the dev shop hosts. It’s an “end-to-end” solution, they’re told.
It’s all a myth.
I’m going to go one step further:
Any web development shop that tries to talk you into this is being reckless or naive at best. At worst, they’re being unethical.
At some point in the maturation of that dev shop, they faced a choice: do we (1) build our own CMS, or (2) learn to competently use one of the hundreds of available open-source or commercial options available. In this day and age, I’m completely mystified why people keep trying the first option.
Actually, I think this is dying out. I hope it is, anyway. I’m hoping that the organizations we see getting screwed over today are just unfortunate vestiges of some archaic past practices. Back in the day, this might have been a viable option. Back before the open-source world matured enough to provide so many great options.
But, in the darkest corners of my mind, some dev shop somewhere is staring down this choice today and still making the wrong one.
- “But all available CMS aren’t good enough,” they’ll say. Myth. When you look at one of the dozens of highly mature open-source options, do you honestly think you’re going to make something better with your two developers sitting in the corner while they also juggle client work? Really? You will manage to solve that problem better than, say, Drupal?
- “But all available CMS are too complicated,” they’ll say. Myth. Part of integrating means understanding the system well enough to make it understandable for others. You can take any system and make it palatable for an end user, you just need the desire to try. Suck it up and stop being lazy. If you can’t make Expression Engine simple for your client, then find another line of work.
- “But all available CMS take so long to learn,” they’ll say. Myth. So, you’re going to build a competitive system from scratch in less time that it’s going to take to learn someone else’s CMS? You can completely re-solve the CMS problem in less time than it would take you to understand TYPO3?
Think about this: if their CMS was really any good, other people would want to use it. If it was that good, they’d sell it, or productize it, or at least open-source it and make the code available for other people to see and use. If they don’t (and they probably don’t), ask yourself why. If they have managed to re-solve the problems of content management so damn well that you should sign onto their pipe dream, why aren’t other people using the software?
If you are a client facing someone trying to sell you this, here are your problems:
- It will be worse than a real CMS. There is no way that dev shop can possibly compete with the state of the open-source market, to say nothing of the commercial market. If they tell you they’re better, then it just means they’re delusional or they don’t know enough about the current CMS technology to understand that they’re talking about.
- It will not develop quickly enough. You will see things on the Internet that you want to do. Be prepared for them to constantly tell you, “Yes, that’s coming in a new version” or “Yes, we’ve been thinking about adding that.” This will never get done. Advancement of their system will take a back seat to client work (as it should), and there is no developer ecosystem to fall back on. If they’re not developing on it, no one is.
- No one can help you but them. They’re the only ones who understand the system. When you start using any CMS, the community is a feature. No community means this dev shop is your only source of support.
- The CMS is tied to them. What if you actually like the system but hate the dev shop? Tough – it’s a package deal. You can’t pick it up and take it anywhere else. (And you know that developer you actually liked? He got sick of the BS and quit last week.)
- Your content is locked in. And this is the biggest problem: your data belongs to them. When you invariably decide the system sucks and want to move on, how do you get it out? What is their export/migration plan? How do you get all your data in a neutral format to put in something else?
If a dev shop tries to talk you into this, do not walk away. Run. As fast as you possibly can. They do not have your best interests at heart. They are trying to put you in their system not for your benefit, but for theirs. The upside belongs completely to them – they get to be lazy, live in their own little insular world, pretend that they’re state-of-the-art, and lock you in.
Do not fall for it.
Do I sound pissed? I am. Too many times – several recently – I’ve seen good organizations get hurt by this. They finally realize that this custom platform is not meeting their needs, they make the hard decision to move on, and they suddenly face tens of thousands of dollars in migration expenses at best, and a obstructionist dev shop at worst.
So, are all hosted CMS options bad? Well, they’re not ideal, and I would never encourage one of my clients to use a SaaS CMS option (I’ve made this point before), but if you have to, look for two things:
- What is the company’s main line of business – building this CMS, or doing web projects for clients? You want the former. Ideally you want a company like Squarespace that does nothing but develop their CMS as a product. You cannot compete with client work, so find a SaaS CMS company that doesn’t do any.
- Is there a decent export/migration plan? If (when) you want to leave, what are your options? How do you get your data out of the system in a format where it can be imported to something else?
Don’t do anything until you have good answers for the above two questions.
This business practice just has to stop. I’m waiting for the first client in this situation to just man up and sue their shop for professional negligence. When it finally happens, I’ll be standing by, cheering them on.