TAKE ADVANTAGE OF DRUPAL'S FEATURES AND FLEXIBILITY FOR YOUR WEBSITE OVERHAUL
One of the best parts of working for a digital experience agency is the number and variety of projects we have the opportunity to work on. And while the size and complexity of the digital experience platform projects we work on differ, they have offered us the opportunity to learn and discover best practices that others can use to help drive the success of their projects.
While the type of client work we take on can vary greatly, some frequent projects we have been tasked with are clients looking to change content management systems (CMS) and clients looking to build multiple websites. From this, we have found that the best way to ensure success involves two key factors: having the right mindset and the right approach.
It's restructuring, not a functionality upgrade.
A key part of any digital experience platform (DXP) is a CMS. The CMS serves as a hub to centrally manage content. Over the past few years, as clients have developed their DXP, we have seen more and more of them looking to move out of one CMS and into another.
Many times, the switch is between two different CMS options (e.g., Sitecore to Drupal). Other times, you may move from one major version to the next major version of the same CMS (e.g., Drupal 7 to Drupal 9). In both cases, it is best to think of the project as a new platform made from scratch, and not as an "upgrade".
The term "upgrade" can make the project look too easy. We already have a website here. We just need to update it. That shouldn't be too difficult. Not only does the term obscure the complexity of the project, but it also misses one of the most important advantages to a project like this. When moving to a new CMS, it's the perfect time to reevaluate the goals and requirements.
Discovery Phase
When a project like this comes up, an initial discovery phase is a key to a successful overhaul. The discovery phase helps the team understand the requirements and learn what works in the current system and where improvements can be made in the new platform.
A key component of the discovery phase is to conduct stakeholder interviews to find out what works and what doesn't work in the current system. If you simply "move" everything as is to a new platform, you are likely to repeat the errors and shortcomings of the current system.
We are not just concerned about the bugs in the current system. If the current system has been in use for several years, the objectives of the system may have changed since it was created. If you are investing in a new platform, you don't want to solve problems that only affected you 5 years ago.
Platform audit
In addition to stakeholder interviews, a full audit of the current platform is also key. While the goal is not to recreate the current platform on the new CMS, the architect can learn a lot from the current platform.
Part of the audit should focus on the custom code that has been written. Often, the custom code will contain the business logic that is needed in the new platform. Another important part of the audit is to understand how the current platform is used and the workflows that have been created for it. The better the architect understands the current system, the better he or she will be able to plan for building the new system.
Understand CMS features and functionality
A final key point is that the new CMS will have different features and functionality than the current CMS. When moving to the new CMS, you will want to change the way the current system is built to take advantage of the new CMS. Trying to make the new CMS work exactly like the old CMS will generate a lot of frustration and a poorly built platform.
Build an ecosystem, not a series of websites.
Whenever you need a system that supports multiple websites, it is important to approach it as an ecosystem and not just some individual websites. Building an ecosystem can be, and often is, a challenge. But done correctly, building an ecosystem results in a more user-friendly and maintainable system that leverages the CMS.
Building an ecosystem allows you to take advantage of economies of scale. One way to realize that is to create all websites with the same code base. This allows you to update the CMS and modules as needed in one place, saving time and resources.
But, you can extend this further. If your platform is built with a component-based approach and you build all websites using a common set of components, builds will take less time, as will future updates.
By creating a custom theme for each website, but using the same components, you can create different styles to meet your specific branding. Or, for even greater scale, you can create a common theme for use across all websites and simply change colours, fonts, etc. By leveraging the same functionality and components across all websites, you can make the platform much easier to maintain and use.
Component Consolidation
One of the main challenges in building an ecosystem versus several websites is that doing so requires commitments from the website owners. It is not uncommon for a client with 10 websites to have hundreds of components and dozens of page templates between websites.
However, when building the new ecosystem, you must consolidate components and page templates to reduce the amount needed. Without consolidation, the build will cost more and take longer than necessary and will result in a platform that is more difficult to use and maintain.
This consolidation will require stakeholders to make compromises, as it is not possible to rebuild all websites in the same way with fewer components and templates.
A well-built ecosystem lends itself to be easier to build, use and maintain. This reduces the total cost of ownership and makes it a better option than building highly customized individual sites.
Flexibility is key
A new DXP is a big undertaking. Today's consumers expect a much more personalized and seamless experience across all channels. The CMS is a critical piece of providing that flexibility.
One way to provide flexibility in the CMS is by using a component-based approach for content publishers to create content. A component-based approach allows content editors to create pages using a series of components within the CMS rather than having a structured format for the page.
This allows flexibility to create pages tailored to the exact message they are trying to send. When done correctly, it can also speed up the content creation process by eliminating the need to have developers involved in content creation and publishing.
Component-based approach
Component-based approaches are much more common these days, but they are not always well executed. Having someone with experience in this type of approach is vital to the success of the project.
From a design perspective, it is essential to strike the right balance between the number of components and the number of component configurations to create a user-friendly content editor experience.
From a technical perspective, there are generally several ways to execute a component-based approach and pros and cons for each. For example, in Drupal, we can use the Layout Builder module as the basis for our component-based approach, and it works very well.
A CMS that provides data
Another way to provide flexibility is to make the CMS able to provide data to all of your platforms. Using your CMS as a centralized content source allows each channel to use the content as needed.
Drupal is an example of a CMS that excels in this area. Drupal was built with an API-first mentality, meaning that exposing content using APIs is built into its structure. Drupal has several modules that make exposing your content as REST API services very easy. Drupal also makes it easy to return that data in a variety of formats, such as JSON and GraphQL, as needed by the system consuming the data.
Mind over matter
No two projects are the same. However, your next project can benefit from what we have seen and learned from our projects. The best way to succeed is to have the right mindset and the right approach as you focus on creating a flexible system.
Have Any Project in Mind?
If you want to do something in Drupal maybe you can hire me.
Either for consulting, development or maintenance of Drupal websites.