I work for a web design company that builds and hosts brochure-type websites for small businesses, with a typical website being 6 pages and no e-commerce.
We currently run an in-house built CMS that was created 15 years ago and unfortunately it’s now getting past its use-by date (it looks very dated and there are several improvements we would like to make). All of the people that originally worked on it have left the company and so we’re looking at replacing it with something off-the-shelf.
I’ve looked at several CMS’s and while they look great for a single site, I don’t think they’d work so well in our situation. Our current CMS is a single installation (eg one set of CMS files and one database) that manages 500+ websites. Ideally the replacement must work in a similar manner, eg we don’t want to have to install a set of CMS files and a separate database for every single site. We feel that would be a nightmare to administer when it came to update the CMS, not to mention the waste of space due to each CMS file being repeated across all the sites.
Each client site operates under its own domain name and each client has a login that allows them to log into an interface that lets them update the content of their site (update text and images only, can’t change HTML and CSS and can’t add new pages). Once logged in the client sees only their website content, they’re not even aware that other sites exist within the CMS. We have a super-admin login that lets us update any client’s website (update text and images, update HTML and CSS, add and delete entire pages, etc).
The client sites are initially built outside the CMS as straightforward HTML pages that include all the text and images (eg you could open the pages in a browser and see the site as it’s intended to be). We then import the site into the CMS which reads the HTML pages and saves it in the database and copies the images to an image directory on the server (each client has their own image directory). We then use an editor in the CMS to go through and mark in the pages the text and images that the client is allowed to change. The client can’t edit anything other than the blocks that we’ve marked as editable. We also mark common HTML code that repeats across the site’s pages, eg footer, menu bar, etc and the CMS extracts those and only keeps one copy of them per site, allowing us to quickly update them and for the change to appear on all pages.
When the client logs into the CMS they see a list of the pages for their site and can click on one to edit it. The full page is shown, just as it would appear in a browser, and when they hover over the parts of the page that they can change they see little indicators appear to show them that part is editable and they can then click on it to edit it. If it’s text then a text editor pops up over the top of the page and they can edit the text. If it’s an image then they’re given the option to upload a new image which will replace the old one (the new image is resized to match the size of the current image so the page layout doesn’t change).
I would have thought that our requirements would be the same as many other web design companies but I’m struggling to find a CMS that can handle multiple sites from just the single CMS installation and treats each site as being totally separate from all the others (eg doesn’t share users, templates, content or domain names between the sites).
Oh, and we also need to be able to host it on our own server.
Whenever I talk to other web designers about this they usually say "Just run Wordpress". I feel these web designers must only have a few clients, Wordpress might be great for a single site but do you want to manage 500+ separate WP installations?