Launching Tide, Victoria’s Drupal distribution
Tide is the 'headless' Drupal 8 content management system (CMS) in Victoria’s new whole-of-government digital platform, Single Digital Presence. Tide gives Victorian Government agencies access to a stable, easy-to-use CMS with a central content repository that can 'serve' content to multiple sites and channels.
Salsa Digital worked with the Department of Premier and Cabinet (DPC) to bring DPC’s vision of a Single Digital Presence (SDP) for Victoria to life. DPC is responsible for several elements of Victoria’s digital engagement, including vic.gov.au, data.vic.gov.au and engage.vic.gov.au. (The Engage website was recently recognised as one of only two finalists in the global GovCX Awards — read our blog on the Awards for more information.)
DPC knew that there were significant problems with the way websites had been built across the Victorian Government, with most sites being built on an ad-hoc basis. The result was over 900 vic.gov.au domains (plus an unknown number of sites on .com, com.au, etc. domains), built using different content management systems (CMSs) and on different platforms. DPC described this fragmentation as a ‘technology debt’ with significant implications on costs, efficiencies and cybersecurity. DPC itself had over 36 sites, on different systems.
DPC knew the Victorian Government needed a unified approach, a whole-of-government digital platform, and put the Single Digital Presence (SDP) project out to tender.
DPC identified two requirements:
A single site where Victorians could go to get information — a site that was managed by one content management system (CMS).
A common platform for hosting and management of the sites.
The new, single platform also had to:
- Be robust, resilient and secure
- Be based on a public cloud
- Use an elastic pricing model
- Be open source
As part of the larger SDP project, DPC engaged Salsa Digital to implement a Drupal distribution that would meet the needs of Victorian government agencies, with a main site at vic.gov.au and additional site sections for other agencies and entities.
Tide can accommodate semi-independent sites that have their content centrally managed, and fully independent sites that are completely separate installations of the whole distribution.
Background: SDP consists of three main products — Bay (an open-source platform based on Lagoon), Tide (a headless Drupal 8 CMS distribution) and Ripple coupled with Nuxt (the frontend presentation layer).
We’re going to start to get technical here...if you don’t want all the tech stuff, jump ahead to the benefits.
The Tide Drupal 8 solution uses:
- An API-first headless distribution
- Multi-site content distribution
- Pick-and-mix features
- Loose coupling between modules
- Tested configuration and business logic
- Relies on the core and contrib code as much as possible
We identified that our content clients may be written using different front-end frameworks, therefore we decided to standardise the REST API request/response format. We chose JSON API format as it’s one of the most defined standards for REST web services. It also supports querying for entities and collections, which makes the data exposure easier to maintain — there’s no need to create Drupal views or other ways of data representation on the Drupal side, because clients can do that on their own.
Multi-site content distribution
Tide is built with a multi-site configuration in mind. This means that each content or media piece can be assigned to appear in the dedicated site. To resolve an issue with duplicate content across multiple sites (how search engine sees it), a ‘Primary Site’ field was added. Clients must implement “<link rel="canonical" href="primary-site-url">” tag to make sure that search engines do not mark the content as duplicated.
To allow the ‘pick-and-mix’ features approach, we needed a system that ensured all modules integrated well with each other after first release and a mechanism to update specific features without making an update to the whole distribution. Composer supports hierarchical dependencies and version resolution. This means that each Tide module can be updated separately, increasing version numbers, and making sure that updates work with dependent modules rather than the whole profile.
Loose coupling between modules
Tide provides a list of modules to cover distribution features. To provide the ‘pick-and-mix’ option, we needed to design and track how configuration is stored in modules.
We split modules in three categories:
Core — A set of base configuration and business logic. It handles roles, text formats and other basic configuration.
Content types — Using a module-per-content type rule, we extracted configuration for each content type in its own module, and added tests and business logic as required.
Optional enhancement modules — These modules provide some additional enhancements, like API configuration or multi-site content distribution.
It’s important to note that one of our goals was to rely on the functionality of core and contrib modules as much as possible to avoid the burden of custom code maintenance. So we decided to test configuration captured in Tide modules using a suite of simple, but thorough, Behat tests. They assert that configuration changes captured in the module indeed apply. For some modules, Behat tests are used to test custom business logic. We also use a PHPunit test to test services that implement custom business logic.
The benefits of Tide can be broken into the overall benefits of the SDP, and benefits of the headless (decoupled) Drupal 8 distribution, Tide.
As part of the biger picture, SDP delivers:
A more citizen-centric offering that makes it easier for Victorians to find government information
Easier content management via one CMS
A truly open source, open platform solution
Access to the Drupal community’s contributions to continue to grow SDP
Responsive sites, so websites can be viewed on desktops, tablets and smartphones
Accessible sites (built-in WCAG2.0AA compliance tools)
A secure environment
Tide (with its headless Drupal 8 distribution) delivers the following benefits:
An easy-to-use content management system (CMS)
An up-to-date CMS, which minimises security risks
A stable CMS—Every change goes through rigorous manual review and automated build process.
One content repository, with the ability to ‘serve’ content to multiple sites/channels
Centralised feature governance—DPC has a dedicated team that manages the backlog of features to cover the majority of CMS use cases.
Tide is also Composer-based (which means all the modern development tools are available out-of-the-box as dependencies) and compatible with Bay, the open-source container-based solution powered by Docker, Kubernetes, and Lagoon.
The DPC is also doing a lot of optimisation around the frontend experience, focusing on what’s best for content authors to make the CMS as intuitive as possible.
Why Salsa Digital?
Salsa won the SDP tender in 2017 on the strength of our response, which not only demonstrated our ability to build a distribution to meet their requirements but also showed innovative thinking around the open platform (which then became Bay).
“Salsa has been a true partner. They’ve shared the vision for open government solutions and they’ve communicated with authenticity, and frequently. They have a highly skilled workforce and also know when to bring in external consultants. They haven’t done what’s comfortable and familiar they’ve stretched their own innovation.” Amber Benjafield, Senior Project and Engagement Manager, DPC
About Salsa Digital
Salsa is a highly specialised, enterprise-grade digital agency focused on open source for social good and innovation. We’re committed to the open government movement and to the many benefits this ethos provides including transparency, innovation, and sharing and improving problems and patterns solved by the pioneers before us.
The open source movement has played a key role in the evolution of Salsa. Over the years, as technology and practices have developed, this commitment to open source has grown to encompass a much broader base beyond open source content management systems (open CMS) — open data, open platform and open design. We contribute and deliver services in all these areas, with a strong involvement in specific open source initiatives such as Drupal, Wordpress, GovCMS, Single Digital Presence, Kubernetes/Lagoon and CKAN.
Read more about Single Digital Presence
Single Digital Presence (SDP) is a total digital solution, a digital landscape the Victorian Government can use to create a unified online presence. Below are more related Salsa publications covering everything from the value proposition to technical case studies:
- Creating a single digital presence for our citizens— an overview of the process, from tender to launch.
- SDP - delivering value— key insights into the value proposition for citizens, the Victorian Government and content authors
- Dissecting the SDP— a deep technical analysis of the three products within the SDP - Bay, Tide and Ripple
- Case study: Bay, the open platform — Find out about Victoria’s new open source platform
- Case study: Ripple, the presentation layer — Find out about Victoria’s new presentation layer and Atomic Library of reusable design elements
- Case study: Department of Treasury and Finance website — SDP pilot site
- Case study: Governor of Victoria website — SDP pilot site