Building a Multi-Site Platform in Drupal

October 9, 2018

At The Bridge Digital, our choice of CMS’s depends as always on the task in hand. One such task relates to the ability to use CMS to create a platform for multiple sites similar in style, such as a network of dealerships, franchises or affiliates that require a shared branding and UX experience and potential shared content management facilities. Yes, you could always simply create a number of different websites with their own layouts, code and content databases and roll them out for each use case, but this results in high costs of content and technical support, ongoing maintenance, unnecessary complexity, security headaches; a near endless litany of concerns!

So how would we recommend tackling this issue? Well, as is usually the case with complex sites with high content management requirements, the Bridge will reach for Drupal 8. While not the only platform that can handle this task, Drupal’s emphasis on content creation and management, along with its scalability and open source nature, makes it a strong choice for multi-site implementations.

There are several options available when trying to tackle multi-site scenarios. We’re going to focus on the most common ways to achieve this using Drupal 8: Multi-Domain, Multi-Site and “Decoupled” Drupal.

Multi-Domain

The “multi-domain” approach delivers a single code-base and single database, managed through one back-end content management portal, but can deliver content through different domain entries points, eg www.mybrand.com.au, specialities.mybrand.com.au and www.myotherbrand.com.au. Content created in the back-end can be made available to one, two or all three of the domains in the above example, all from the one location. Each those three sites could have its own look and feel, but all the content would be managed from one location.

This can be a good solution if there are multiple websites to be served from the same hosting account that will be managed by the same people. This can be ideal for a lot of marketing teams that work across multiple brands. Also, because the three sites all run on the same code and database, maintenance in terms of backups, security patches etc are all simplified.

The major drawback in this approach comes when each brand in the network has its own content managers. Content creators for MyOtherBrand will log into the same area as those for the other two, meaning that they could modify content not intended for the website they manage, or content creators could double up on effort. Perhaps the only content that actually needs to be shared across all three sites is some kind of sales offer or landing page, but the bulk of content is individual to each site. As sites become more complex and loaded with content, management and organisation of that content can quickly become unwieldy.

Multi-Site

There are two methods of Multi-Site Drupal.

The first is creating a Drupal “distribution” that can be shared across each affiliate site. This distribution would be preconfigured with all modules and themes that can be utilised across sites in the network. Each site can then have an initial shared code-base, but each affiliate would be able to install their own separate Drupal website independently with its own content and user list. This removes the issues of content management from the Multi-Domain model but increasing the amount of technical support required when deploying security updates etc. It does however mean that maintenance or downtime on one of the sites won’t affect the others. This approach works well when the intention is for affiliates to have their own website created quickly but they will not be managed by or share content with any other affiliates or a parent site.

The second multi-site scenario is a “best of both worlds” approach where there is a single code base on one hosting platform that can serve multiple sites. While there is then only one Drupal installation, each site has its own database. Sites can still be configured with their own theme and look and feel but the overall codebase (custom modules, Drupal software version) is shared. Content is segregated by database. This approach has all the benefits of the above, with the added benefit that updates to Drupal Core and modules only need to be applied to one codebase. This scenario is the most common and one Drupal ships with “out-of-the-box”.

Decoupled Drupal

There is one other way to approach this, also known as “Headless” Drupal, which is to decouple the Drupal CMS and use it only for content management. For more details see our blog ‘Decoupled CMS’.

In this scenario, a website could be fully or partially decoupled from Drupal in this scenario. Some examples of this are:

  • Parent Brand website has a Drupal back-end, but the Affiliate has a website running only on HTML and JavaScript, or even another content management system altogether.
  • The Affiliate website can retrieve a feed of shared content from the Parent website and render it as required
  • Affiliates who have their own front-end developers could create and manage their own websites but “plug in” to Drupal for content
  • We can mix a Multi-Site implementation into this scenario where the parent site and the affiliate both have separate Drupal installations, but the affiliate receives selected content from the parent site.

There are a number of significant benefits to “Decoupled Drupal”, most significantly being that front-end websites can be truly separated from the back-end code. This means that while Drupal does the heavy lifting in terms of content, web developers can use any kind of appropriate technology for the front end of the website, and that website can be hosted just about anywhere.

Conclusion

As you can tell from the above, Drupal 8 is both powerful and versatile when it comes to managing and delivering multiple websites. The Bridge Digital are specialists in Drupal 8 development and have experience in delivering projects requiring multi-site functionality. Contact us today to discuss your requirements!

If you’d like to discuss your website or software development options with The Bridge at no cost or obligation, feel free to call Lawrence on 02 9993 3300 or email lawrence@thebridgedigital.com.au

Contact us

Leave a detailed message here. There’s always someone around to get back to you quickly.