Inspect SaaS CMS Packages Without Losing Your Sanity (Package Explorer Update)

blog header image

Optimizely export packages have quietly become more complex. Inline (nested) blocks in CMS 12 and PaaS solutions weren’t always displayed clearly, and with SaaS CMS—and soon CMS 13—Visual Builder introduces compositions, layout hierarchies, and display templates on top. This update to the Optimizely Package Explorer improves support across these scenarios, making it far easier to inspect and understand what’s actually inside your packages.

In the previous release, we introduced major usability improvements and structural inspection enhancements. This update goes deeper—focusing specifically on modern export scenarios across CMS 12, SaaS CMS, and the upcoming CMS 13.

Export packages used to be relatively predictable.

You had content types.
You had properties.
You had blocks referenced in known ways.

Then inline (nested) blocks became more common—especially in CMS 12 and PaaS solutions. While powerful, they weren’t always easy to interpret inside exported packages. Instead of clearly structured content, you’d often see long serialized values where structure was implied rather than visible.

Now add SaaS CMS—and soon CMS 13—to the picture.

With Visual Builder, content is no longer just properties and references. It’s:

  • Compositions
  • Sections, rows, and columns
  • Nested elements
  • Inline blocks inside structured layouts
  • Display templates defining how elements behave

 

The flexibility is fantastic for editors.

But inside an export package, that flexibility translates into layered JSON structures and embedded elements that aren’t always obvious at first glance.

If you’re debugging, validating exports, preparing migrations, or just trying to understand what was actually built—you need clarity, not guesswork.

That’s what this update focuses on.

Inline Blocks — Now Properly Displayed

Inline (nested) blocks have been around for a while—especially in CMS 12 and PaaS-based solutions. They’re powerful because editors can build rich, structured content directly inside properties like ContentArea.

The problem?

Inside export packages, those inline blocks weren’t always easy to inspect.

Instead of clearly structured nested items, you often ended up looking at serialized values where the actual hierarchy was hidden inside markup or embedded JSON. Technically correct—but not exactly readable.

This release improves how inline blocks are parsed and presented.

Inline blocks are now:

  • Extracted and displayed as proper nested items
  • Shown in a clear hierarchical structure
  • Easier to expand, inspect, and validate
  • Separated visually from surrounding property data

 

You can now see what’s actually inside a content area—without reverse-engineering it in your head.

Inline blocks are now displayed as structured nested items inside the content area, making their hierarchy and relationships clear.

Compositions & Layout — Understanding Visual Builder Structures

With Optimizely SaaS—and soon CMS 13—Visual Builder introduces a more compositional approach to content.

Instead of just properties and referenced blocks, you now have structured layouts consisting of:

  • Sections
  • Rows
  • Columns
  • Components
  • Nested elements inside those components

 

In export packages, this structure is typically represented as layout JSON. Powerful, yes—but not always immediately readable.

This update improves how those layout structures are interpreted and displayed inside the Package Explorer.

Instead of looking at raw layout definitions, you can now navigate:

  • The overall composition structure
  • Individual sections and their purpose
  • Nested rows and columns
  • The components placed within each layout area

 

The hierarchy becomes visible instead of implied.

Layout structures from Visual Builder are presented as a readable hierarchy of sections and components, making it easier to understand how a page is composed.

Drilling Into Individual Elements

It’s not just about seeing the layout structure.

You can also drill into individual elements inside a composition and inspect their actual data—titles, subtitles, background settings, links, and other element properties.

This is especially useful when:

  • Debugging unexpected layout behavior
  • Validating what editors configured
  • Preparing migrations
  • Rebuilding layouts in another environment

 

Instead of guessing how a component was configured, you can inspect the element data directly.

Drill into individual composition elements to inspect their properties and configuration, including nested data and element settings.

 

A New and Improved Display Templates View

Visual Builder doesn’t just define structure. It also defines behavior.

Display templates control how elements are rendered, what variations exist, and how components behave in different contexts. In SaaS CMS—and moving forward with CMS 13—this becomes an important part of understanding a solution.

Previously, display template data was accessible—but not always easy to overview.

This release introduces a clearer, dedicated view for display templates.

Instead of digging through raw definitions, you now get:

  • A structured overview of available templates
  • Clear visibility into element settings and defaults
  • A better understanding of how templates relate to content types
  • A more focused inspection experience overall

 

For developers and architects, this matters when:

  • Validating how elements are configured
  • Debugging rendering inconsistencies
  • Understanding how a SaaS implementation is structured
  • Preparing migrations or refactoring efforts

 

It brings visibility to an area that’s increasingly central in modern Optimizely setups.

The updated Display Templates view provides a structured overview of template definitions, element settings, and their relationships.

 

What this ultimately means is simple: export packages are no longer something you have to mentally reconstruct.

When inline blocks are clearly nested, compositions are structured hierarchically, and display templates are visible in context, the package starts to reflect the actual architecture of the solution.

You can see how a page was composed.
You can see how elements were configured.
You can see how structure and behavior connect.

That’s valuable when debugging a layout that doesn’t behave as expected. It’s valuable when validating a SaaS export before a migration. And it’s especially valuable when reviewing a solution built by another team and trying to understand the architectural decisions behind it.

Modern Optimizely setups are more flexible than ever. The tooling used to inspect them should keep up.

This version of the Package Explorer is a step in that direction.

Try It Out

If you’re working with CMS 12, PaaS, SaaS CMS, or preparing for CMS 13, give it a spin:

👉 Try the live demo: https://codeartdk.github.io/CodeArt.Optimizely.PackageExplorer/

⭐ Star the project on GitHub: https://github.com/CodeArtDK/CodeArt.Optimizely.PackageExplorer

📖 Read the previous update: https://www.codeart.dk/blog/2025/11/optimizely-package-explorer-now-with-extra-superpowers/

 

It’s open source, runs entirely in the browser, and continues to evolve alongside the platform.