Skip to main content


Advanced topics


The Website engine is powered by Berlioz, a lightweight Web Framework which uses URI patterns to match URLs, XSLT for rendering, and XML for content.

On its own, Berlioz does little more than provide a Web framework. However, the Website Engine also includes Bastille, a library that provides common functions such as caching, indexing, login and reading XML and PSML files.

Purpose & application

The Website Engine is designed to provide a high-end Web platform so that PageSeeder data can be made accessible though the Web without going through PageSeeder.

The Website engine is particularly useful when there are different classes of users that need to access the same data.

Common use case: Electronic publishing

Authors and editors can use PageSeeder so that they can take advantage of the rich data modeling and editing capabilities and built-in permission model of PageSeeder.

When data is ready to be published, it is pushed through the Publisher to the Website Engine so that their publications can be accessed by the general public, with dedicated layouts for various devices.

This website follows this model: PageSeeder developers use PageSeeder for authoring and publish the documentation when it’s ready for general consumption.

Comparison with Layout Manager

The built-in Layout Manager in PageSeeder that controls the PageSeeder user interface is already highly configurable and uses a similar architecture to Berlioz, based on URI patterns and XSLT for rendering.

However, it has been designed to be tightly integrated with PageSeeder and therefore imposes restrictions on the general layout, in particular the navigation and page structure. It is also difficult and possibly undesirable to turn off some of PageSeeder’s user interface components.

When to use the layout manager

The layout manager is the preferred choice when a new user interface component needs to complement the existing PageSeeder user interface such as a customized report, predefined search results, or a custom block.

The layout manager is also the only option when an existing component needs to be customized, for example, by using a specific style (CSS), behavior (JavaScript), or structure (XSLT). But developers need to be careful not to customize the interface to heavily or it might become difficult to diagnose issues.

It is also possible to use the layout manager to create an entirely new layout that makes intensive use of PageSeeder functions because they are directly accessible to the layout components. However, it imposes a lot of restrictions on the URLs and is best if done only by experienced developers.

When to use the website engine

It is preferable to use the website engine whenever a completely new layout needs to be provided. The Website engine has the advantage of offering a blank canvas and lower learning curve than the layout manager.

If the audience for the Website has no reason to be exposed to PageSeeder, then the Website engine provides a much more flexible framework than the layout manager.

If the lifecycle of the data is different from that on PageSeeder, the Website engine is also a good choice. This enables editors and authors to edit and review the content collaboratively on PageSeeder, at their convenience, and to only push the data out to the Website when the editorial review has been completed.

Created on , last edited on