If you've been using Sitecore long enough, you've seen a lot of ways to build websites. In Sitecore’s early days, this was a core selling point. We were free to model a website based on a business’s unique needs. Over the years, most partners developed their own way of designing a content tree and data model. Some were very similar because developers moved between companies and exchanged ideas. But some were very different and didn't follow accepted conventions. As the years passed, this created a very uneven landscape of Sitecore content trees and data models.
A Common Foundation
This uneven landscape brings us to Sitecore Experience Accelerator (SXA), the solution to our problem. If you’re a Sitecore customer, you need to know that the website a partner builds you will stand the test of time. SXA is how that happens. With a foundation built on Helix, it ensures that you can feel good about your website’s future.
As a Sitecore partner, Velir still solves all types of complex problems, but SXA allows us to focus more on high-value features. SXA features a lot of built-in patterns that partners can follow. It also has Sitecore Powershell Extensions, so you can run tough cleanup or language generation tasks without deploying new code.
In the past, we’ve seen that a lot of required technology wasn’t supported out-of-the-box on Sitecore multisite systems. SXA also fixes this. With its standardized site structure, developing all the necessary parts to support multisite is a lot easier. There's much less work to scale up and out. If you need to expand the same site across every country where your business has an office, that's built-in. If you have different sites for different business units, that's also built-in.
SXA also helps you quickly create marketing landing pages. It used to be hard to build a landing page from existing elements, and to remove the navigation or search bar. You had to add in a new branch template, configure it and deploy it. SXA introduces the concept of partial designs and page designs. Content editors can now structure a page by editing a blank page and designing a small reusable part. Then you can compose page layouts in any number of ways with those parts. To build your landing page you can add a partial design called Marketing Header and a page design called Marketing Landing page. Then you can select that design from the page design field on any new page you create.
Of all Sitecore’s features, nothing has needed more standardization than component data. Partners have faced problems figuring out where to put datasources, what to name them, how to automatically create their folders, and the dreaded branch duplication. With SXA that all goes away since you can have a page-specific datasource, a shared datasource, or both for any component.
Decoupled Front-End Development
One of the interesting challenges that SXA takes on is front-end development. It extends the single location we usually place component markup in .NET Razor files by creating a concept called rendering variants. This allows you to create HTML from a content tree structure. It can be limiting but there are some cases where it's useful. Another extension of this idea is to generate HTML from a Scriban script.
Scriban is an HTML template language that looks like HTML but contains special characters to handle loops and variables. It's new and it looks like the language most front-end developers use to write their code. It could be a powerful way to decouple front-end development from back-end. Time will tell. There are advantages to each new option depending on your needs. But it's reassuring for partners that we can create components the way we usually do and branch into new options if/when they benefit us.
SXA might pose the following challenges depending on your site’s needs:
- Stock components generally need modification or net new construction to meet business needs
- CSS/JS files live in the Media Library, making file management and tooling more difficult than it should be
- Some built-in enumerations are at a system level, making extension seem unsafe
- Moving a lot of configuration to the content tree means partners need clarity on how to manage and migrate them across environments
- Rendering variant markup makes it difficult to add attributes for SEO and accessibility
- Search settings and linguistics are not intuitive for content authors
- Snippets seem promising but get very messy
- Out-of-the-box grids generate a lot of settings and are not easy for content authors to manage
The Final Word
SXA is a much-needed evolutionary step for Sitecore that offers standardization and a powerful set of tools that allow you to focus on developing higher-value features. SXA presents some hurdles for developers, but they are manageable. The benefits of using it outweigh its challenges. At the end of the day, you're still working in Sitecore and you can do everything you could do before, it's just a lot easier.