Insights

How to apply Helix Architecture on multisite Sitecore platform

Using Sitecore Helix architecture leads for better-organised, more maintainable, and scalable Sitecore solutions

Sitecore Helix: a robust framework for managing a multisite Sitecore platform

When designing any software project, following well-established design principles is crucial for long-term success. One of the most important principles is maintaining clear and explicit dependencies between software modules. This not only makes the codebase easier to develop, but also simplifies testing, maintenance, and scalability.

What is Sitecore Helix?

Sitecore Helix is Sitecore’s implementation of these best practices, providing a set of recommended practices and conventions for the Sitecore developers. While Helix outlines these principles, it’s not a rigid set of rules. Each Sitecore solution will have unique requirements, meaning that development teams, businesses, and projects will often need to adapt these recommendations to suit their needs.

Helix provides a clear and consistent project structure, helping developers understand and navigate the codebase more easily. At its core, Helix focuses on three major aspects of modular architecture:

  1. Dependencies: describes how different features and functionalities in the solution relate to each other.
  2. Layers: organises the direction of dependencies, ensuring a more manageable solution.
  3. Modules: encourages isolation of features and functionality, leading to greater discoverability and simplicity in the development process.

Sitecore Helix modular architecture - Ratio Partners

Applying Helix to a multisite Sitecore platform

In a multisite Sitecore setup, applying Helix involves determining the common functionalities and features that will be shared across multiple sites, as well as identifying site-specific requirements.

Foundation layer: Defining Core and Shared Functionalities

The Foundation layer is where the most fundamental, reusable functionalities are defined. These are core elements that may be used across different sites, reducing development time and effort by centralising common features.

Some typical customisations in the Foundations modules include:

  • Custom error handling (e.g., 404, 500 pages)
  • Custom XML sitemap and robots txt
  • Customisation around GEO IP redirection
  • Custom link manager
  • Custom indexing
  • Custom analytics

Because Foundation modules are generally universal and reusable, they can easily be shared across different projects or sites. This modularity leads to faster development cycles and easier maintenance.

In our implementation, we also decided to define page compositions as base templates within the Foundation layer. For instance, in the Foundation.Content project, template and field IDs are defined, and multiple Feature modules inherit from these. This approach sped up our process for defining and implementing various page components.

Feature layer: Implementing website-specific features

The Feature layer focuses on implementing specific modules or functionalities that are typically related to particular websites but might also be shared across multiple sites.

Examples of Feature modules include:

  • Page content: Contains custom components like banners, articles, or other content types.
  • Forms: Extension of the Sitecore Forms module with custom form actions.
  • Navigation: Handles site navigation features such as menus, breadcrumbs, and other elements that help users navigate on the sites
  • Booking: Custom modules for handling e-commerce and checkout processes.

 

This layer allows for independent module development, which enables teams to work on different features in parallel, speeding up the delivery process. The modularity ensures that features are reusable across multiple sites when needed.

Project layer: site-specific implementation

The Project layer is dedicated to site-specific functionalities. In a multisite setup, this layer manages custom configurations, site-specific workflows, and security settings.

In Sitecore, we define page types that inherit fields from both Foundation and Feature base templates. This layer also handles other site-specific configurations such as:

  • Custom site domains and roles (security)
  • Page templates and structural layouts
  • Workflow definitions
  • Site-specific indexing
  • Custom error pages (e.g., 500 errors)

In this way, the Project layer becomes the go-to location for anything that is unique to a specific website within the multisite setup.

Optimised content structure for editors

By following Helix architecture, we also ensure that content creation is streamlined for editors. Each site contains a Home node for the main content, a Settings node for site-specific and component-specific configurations, and a Global folder for reusable data sources, such as banners or shared content blocks.

For instance:

  • Search component’s settings might define templates that should be filtered during a search. These settings can be decoupled from the Project layer, making the search functionality more adaptable and reusable.
  • Site languages settings allow you to specify which languages are allowed on the site, including custom processors that enforce these language rules.

This structure ensures that performance bottlenecks are reduced, as reusable elements are clearly separated from site-specific content, improving overall system efficiency.

Sitecore Helix provides a robust framework for managing a multisite Sitecore platform. By carefully implementing Helix principles, including the separation of Foundation, Feature, and Project layers, you can build scalable, maintainable, and high-performing websites. This approach ensures that you get the most out of your Sitecore investment, delivering powerful, flexible solutions that grow with your business.