People often ask us why we built ‘another CMS’ when there are so many other options out there, so we thought we would put this explanation together to try and explain.
We’ve been building web sites, online stores and web applications for our clients for over ten years. During that time we have used open source systems, purchased and extended commercial systems and built from scratch, all of which have their pros and cons.
We eventually found ourselves in a situation where we had the following problems we wanted to address:
-
We had a number of servers, each with their own operating systems and middleware that required constant patching and maintenance to keep secure and up to date.
-
Quite often, open source systems would get us to about 80% of where the client wanted to be. We would then have to build additions (through modules, plugins or by extending the system depending on what was supported) to provide the extra 20%.
-
Each site was running on it’s own installation of whatever software it was built in. Some open source, some commercial and some home-grown. All of these systems had to be patched and upgraded individually as new versions came out. This was made even more difficult in the cases where we had extended the system to run custom functionality specific to the site. We had to first check that the upgrades weren’t going to affect the custom code and data, and in the cases that it did, we had to then handle it somehow.
-
When first reviewing options, many commercial and open source systems appeared to provide the feature set and functionality that was required to get the job done for the client. But upon closer examination, we often found that the systems were lacking in functionality, usability and/or performance. Sometimes this was only apparent after using the system in production for a few weeks. Additional development was often required to address these issues, which then in turn impacted on our ability to keep the system on the upgrade path provided by the vendor or the open source project.
-
Each site had a separate maintenance and backup plan.
At the beginning of 2007 we decided to sit down and plan for the next few years. Where possible, we wanted to consolidate our servers and software into a single platform that would then allow us to concentrate on providing a better service to our clients instead of spending so much time on maintenance.
To help us search for this new software platform to host all of our clients on, we made a list of our high level requirements. At the time, we knew that we were unlikely to find a silver bullet, but hoped that we could find something close.
-
Should be possible to have one installation of the software that runs many sites. This would allow us to apply upgrades to all sites in one go, meaning that all of our customers would then receive bug fixes and new features at the same time.
-
Should be scalable across many servers, so that we can grow as our customers grow.
-
Should be easy to extend the system to support new features in a way that will not impact future upgrades.
-
Should provide a way for us to create a new site at a click of a button.
-
Should provide a way for us to separate out functionality into ‘price tiers’ so that our customers only have to pay for what they need.
-
Should provide content management, ecommerce, customer relationship management, and application building functionality out of the box (classifieds, job listings, blogs, news, etc).
-
Needs to be extremely easy to use and to have a ‘nice looking’ (we will know it when we see it!) user interface.
-
Should be aimed at both web developers/designers and end users. It’s really important that our clients can use it to maintain their own sites and don’t have to revert to us for every change.
-
Needs to be supported by one maintenance and backup plan. Ideally, we want one hour backups.
-
Needs to be built using technology that our customers are comfortable with. This seems like it shouldn't be important, but one of our guarantees to our customer is that we will provide the whole system, free of charge, if we were to ever cease trading. We don’t plan on that ever happening (we’ve been here for a long time already) but it does give our customers peace of mind.
-
It’s got to be shiny. And have turtles all the way down.
We spent a long time looking. But nada.
It wasn’t that we didn’t find great options - we did. But none of them fitted the bill exactly. Hardly any of them were multi site. There weren’t very many options that provided content management and ecommerce and customer relationship management and the ability to build applications. Some of them were written in languages that wouldn’t fly with our customers (don’t ask, we don’t want to start a language war). It was a really frustrating time, because some of the options were very good in some areas, but lacking in others.
So, we were a bit stuck. The choices were:
-
Carry on as we were.
-
Settle with something that would meet most of the requirements.
-
Build it ourselves.
The first option wasn’t really an option at all. We couldn’t carry on the way we were and be happy with the service that we were providing.
The second option, when we really thought about it, was really just a variation on the first. No matter what we went with, we would have ended up with the same problems in our list. We also considered finding an open source option which we could contribute to, but were worried about investing a lot of time and effort into a platform that we ultimately had no control over the direction of.
The third option seemed to be the only way, but we were wary. First off, we knew this would be a big undertaking. Second, we were worried about the Not Invented Here syndrome - was there really nothing that we could use?
After a lot of deliberation, we decided that our only real option was to build a system that would meet all of our requirements. Work on our web publishing platform began in 2007. Our first public version, then called Visual Edit, was released in 2008. A year later we released our second version of the platform, renamed SiteBuilder.
It’s now 2011, and we are unbelievably happy that we decided to create our own web publishing platform. It meets every one of our initial requirements, we’ve been able to adapt it to our exact needs, we no longer spend all of our time on maintenance tasks and we’ve had great feedback from our clients.
It wasn’t an easy decision, but it was definitely the right one!