Template Frameworks and Page Builders

This content was generated with the assistance of AI and should be verified against the official Joomla documentation before being relied on in production.

This sub-section’s Joomla bibliography lists the reference material consulted while preparing these pages.

Besides the default Cassiopeia template, Joomla has a large commercial and community ecosystem of template frameworks (a base layer with a layout builder and a control panel, on which templates are built) and page builders (tools that let an editor lay out article or page content visually). Older books present them as the normal way to design a Joomla site. This page describes them neutrally, as one option next to a child template of Cassiopeia, for the site builder, the themer and the administrator who has to decide, or who inherits a site built with one of them.

It was checked on 2026-10-30 against Joomla 6.2 (current, PHP 8.3 or newer) and the vendors' own sites and changelogs. Product details change quickly and vary by licence and version, so treat what follows as a method plus a snapshot. No product is recommended over another and none is required. Compatibility with a given Joomla version is a statement made by each vendor, not by the Joomla project: confirm it on the vendor’s site and in its changelog before you install anything on a production site. The Tallpine Hiking Club, the running scenario, keeps its cassiopeia_tallpine child template (see Child templates) and uses this page to decide whether a framework would have been a better fit.

What these products are

Kind What it adds Examples

Template framework

A template (installed under templates/ and in the Templates manager) that adds its own control panel, a drag-and-drop layout or section builder, preset styles, module-position and typography options, and often its own plugin and library

Helix Ultimate (JoomShaper), T4 Framework (JoomlArt), Gantry 5 (RocketTheme)

Page builder

An extension (component, plugin and module) that stores a layout and its elements for a page, article or module and renders it in the article text or a dedicated view

SP Page Builder (JoomShaper), YOOtheme Pro (YOOtheme, which is both a template and a builder)

Core child template

No framework: a template that names a parent and overrides only what differs

cassiopeia_extended in Joomla 6.0, and your own cassiopeia_tallpine

The two categories overlap. A framework is a template; a page builder is an extension whose output still passes through the active template. YOOtheme Pro is the best-known product that is both. The Joomla Extensions Directory (JED) lists templates and builders under its Style & Design area; a listing is a convenience for finding and rating products, not an endorsement by the Joomla project, and its compatibility labels are filled in by the vendor. See Update servers and the JED for how listings and update servers work.

The products, as of the check date

The table summarises what the vendors' own pages and changelogs state. Prices and plans are omitted on purpose because they change often.

Product Vendor and model Compatibility statement found

Helix Ultimate

JoomShaper. Described on the vendor site as a free framework behind the vendor’s templates; the templates themselves are sold through subscription plans. A repository is published at JoomShaper/helix-ultimate

The vendor site states that SP Page Builder works with Joomla 5 and 6. For Helix Ultimate itself, read the current changelog and the requirements of the template you install; the public repository README does not name a Joomla version

T4 Framework

JoomlArt. Presented with a drag-and-drop layout builder and a theme customisation panel; templates are sold through subscription "clubs", and the vendor markets the T4 Page Builder and framework as a suite

The vendor site announces Joomla 6 templates and extensions and states that some products are compatible with Joomla 6; it does not give one sentence for the framework itself, so check the version of the framework your template bundles

Gantry 5

RocketTheme. Open-source framework with a documented layout manager and the "particles" and "atoms" building blocks; releases are published on GitHub

The changelog lists native Joomla 5 support (5.5.22), a drop of Joomla 4 in 5.6.0 (minimum 5.0.0), Joomla 6 support in 5.6.2 (June 2026) and fixes for Joomla 6.1.3 in 5.6.4 (September 2026). Its older System Requirements page still says "Joomla 3.4 and higher" and PHP 7.1.3

SP Page Builder

JoomShaper. Free and paid editions of a front-end page builder

The vendor site states "Works with Joomla 5 and 6"

YOOtheme Pro

YOOtheme. Paid template and builder with a site builder, page builder, style editor and dynamic content from custom fields; developers can use child themes and custom CSS or Less

The product page does not state Joomla versions; read the documentation and changelog

The Gantry row shows two statements written at different times by the same vendor. This is typical, and the reason the rule below matters: the changelog and the extension manifest are the primary evidence, marketing pages and old documentation are not.

Trade-offs

What a framework or builder gives you

  • speed for non-developers: choose a preset, drag sections, set colours and fonts in a panel, without editing files

  • ready-made layouts, headers, mega menus and sliders that Cassiopeia does not provide

  • a vendor to ask: commercial products include support, and some include design assets and demo content

  • a visual editor for editors who do not want to write HTML

What they cost

  • Lock-in. A layout built in a vendor’s builder is stored in the vendor’s format (usually JSON in the database or in a dedicated table, or special shortcodes in the article text). If you remove the product, the content may show raw markup or lose its layout. The template style parameters live in #__template_styles.params in a vendor-specific structure. A child template of Cassiopeia stores only standard Joomla parameters and plain files.

  • Update cadence. Joomla ships a minor every six months and a major every two years (see Versions, release cycle and support). A framework or builder must follow each of those releases, and some vendors lag. Paid products usually require an active licence or download key to receive updates; letting it lapse leaves a site without security fixes for the template layer. Cassiopeia and cassiopeia_extended are updated with core.

  • Joomla 6 compatibility. Joomla 6.0 removed code that older extensions relied on; it is available only through the Behaviour - Backward Compatibility 6 plugin (BC6). A product that needs BC6 works only while that plugin stays enabled and is exposed again when Joomla 7 removes the compatibility layer (see Deprecations and preparing for Joomla 7). Prefer products that state native support for your Joomla major version.

  • Performance and accessibility. Builders ship their own CSS and JavaScript, often large and loaded on every page, and generated markup may fail landmark, heading-order, contrast or keyboard checks. Run the checks in Web accessibility and Colour modes, RTL and accessibility on a representative page, and look at the cache behaviour described in Caching and performance.

  • Security surface. Every extension is more code to keep patched. Third-party templates have shipped security fixes like any other extension; see Security in extensions.

  • Overrides and Web Asset Manager. Many frameworks bring their own layout files and load assets their own way. Check whether they honour the standard override lookup and the registries described in Web Asset Manager; if they do not, your customisations become vendor-specific too.

What a child template of Cassiopeia gives you

A child template (Joomla 4.1 and later) contains only the files that differ from Cassiopeia, so the parent’s updates continue to apply, there is no builder format to leave, and the cost is that you write CSS and, for new layouts, PHP. It is not a no-code tool. The two approaches are not exclusive: many sites keep a child template for the design system and use a builder only for a few landing pages. Older material calls child templates brand new; they have been the standard way to customise Cassiopeia since 4.1, and 6.0 ships cassiopeia_extended as a core child template (see Cassiopeia and Cassiopeia Extended).

Criterion Framework or builder Child template of Cassiopeia

Skills needed

Mostly point-and-click

CSS, plus PHP for new layouts

Content portability

Layouts in a vendor format

Standard articles and modules

Updates

Vendor schedule, often licence-bound

With Joomla core

Joomla 6 readiness

Verify per product and version

Follows core

Cost

Free or subscription

Your time

Vendor support

Yes (commercial products)

Community and your own team

Removal

Content and styles may break

Reassign the template style

flowchart TD A[Need a site design] --> B{Developer time available?} B -- yes --> C{Layouts beyond Cassiopeia positions?} B -- no --> F[Evaluate a framework or builder] C -- no --> D[Child template of Cassiopeia] C -- yes --> E[Child template plus overrides] F --> G{Vendor states native support for your Joomla major?} G -- yes --> H[Pilot on a staging copy] G -- no --> I[Choose another product or wait] H --> J{Exit path tested?} J -- yes --> K[Adopt] J -- no --> L[Test removal first]

Auditing what is installed

Before deciding anything on an existing site, list the templates, their versions and the styles in use. The Templates manager shows styles, the Extensions manager shows versions, and SQL gives the full picture. The query below uses the standard #__extensions and #__template_styles tables; #__ is replaced by your table prefix.

-- Installed site templates with their manifest version
SELECT e.extension_id, e.element, e.enabled,
       JSON_VALUE(e.manifest_cache, '$.version') AS version,
       JSON_VALUE(e.manifest_cache, '$.author')  AS author
FROM   #__extensions e
WHERE  e.type = 'template' AND e.client_id = 0
ORDER  BY e.element;

-- Styles and the menu items using them
SELECT s.id, s.template, s.title, s.home,
       COUNT(m.id) AS menu_items
FROM   #__template_styles s
LEFT   JOIN #__menu m ON m.template_style_id = s.id
WHERE  s.client_id = 0
GROUP  BY s.id, s.template, s.title, s.home;

Then answer, for each result: is it a framework? Does a page builder store content in articles? Is the template enabled but unused (remove it, to reduce attack surface)? Does its version match the vendor’s current release? The System - Information screen and the Extensions: Manage filter Type: Template show the same data in the administrator; see Templates and template styles for the screens and for how Joomla chooses a style for a request.

Evaluating a product

Use the same checklist for every candidate. Try it on a staging copy of the Tallpine site, not on production.

  1. Find the compatibility statement. The vendor’s changelog or requirements page must name your Joomla major version (here 6.x) and PHP version (8.3 or newer for Joomla 6.2). A statement that works only with a compatibility plugin is not native support.

  2. Check how it is delivered and updated. Does it appear in System - Update - Extensions with an update server? Is a download key or licence needed? Who is warned when a key expires? See Extensions: installing, updating and update sites.

  3. Read the manifest. Open templateDetails.xml; look for <inheritable>, the declared <positions>, the files it registers and any dependencies on a framework plugin or library.

  4. Test removal. On the staging copy, uninstall the product and look at pages that used it. The result is your exit cost.

  5. Measure. Compare page weight, request count and an accessibility audit with the same page on Cassiopeia.

  6. Check backups and restores. Confirm a restore of the site brings the template, plugin and database rows back together (see Backups and recovery).

  7. Plan Joomla updates. Joomla core updates (including automated core updates, see Updating Joomla and automated core updates) can land before the vendor ships a compatible release. Decide who tests first and whether automated updates stay on.

A framework template usually declares its own parameters in templateDetails.xml and may install a companion system plugin. A minimal sketch of such a manifest, only to show the elements that matter when you audit one (it is not a vendor’s file):

<?xml version="1.0" encoding="utf-8"?>
<extension type="template" client="site" method="upgrade">
    <name>tpl_vendor_demo</name>
    <version>1.0.0</version>
    <inheritable>1</inheritable>
    <files>
        <filename>index.php</filename>
        <filename>templateDetails.xml</filename>
        <folder>html</folder>
        <folder>layouts</folder>
    </files>
    <positions>
        <position>topbar</position>
        <position>sidebar-right</position>
    </positions>
    <config>
        <fields name="params">
            <fieldset name="advanced">
                <field name="presetName" type="text" default="default" />
            </fieldset>
        </fields>
    </config>
</extension>

If the template marks itself <inheritable>, you can create a child of it as you would with Cassiopeia; otherwise overrides and customisation must follow the vendor’s own mechanism.

Page builders and your content

When an editor builds a page in a page builder, three things can happen to the content:

  • the builder stores its layout in its own table and the article only holds a placeholder or rendered HTML

  • the builder stores its layout in the article’s introtext as markup or a shortcode-like tag

  • the builder renders from a custom field or a module configuration

Which one a product uses decides what you lose when you stop using it and what Smart Search indexes (see Smart Search). To find out for a product, create one test article, save it and read its row.

SELECT id, title, LEFT(introtext, 300) AS introtext_start, LENGTH(introtext) AS bytes
FROM   #__content
WHERE  title = 'Builder test page';

Keep structured data such as the Tallpine trail distance and difficulty in custom fields (see Custom fields) and not inside a builder layout, so the data survives a change of design.

An exit path for Tallpine

Suppose the club started with a framework template and later moves to cassiopeia_tallpine. A safe order is:

  1. Create the child template and a new style for it (see Child templates).

  2. On staging, assign the new style to one menu item (Template Style tab of the menu item) and compare.

  3. Recreate the module positions the old template used, or map them: modules assigned to a position that the new template does not declare disappear from the page. The administrator can show every position by appending ?tp=1 to a front-end URL when Preview Module Positions is enabled in the Templates options.

  4. Move structured data into custom fields and recreate the few builder pages as articles with standard blocks.

  5. Switch the default style, test, and only then uninstall the old template and its companion plugins.

Because the style is assigned per menu item, you can migrate section by section rather than on a single day. The mechanism is explained in Templates and template styles; a new template from nothing is covered in Building a template from scratch.

Common errors and pitfalls

  • Installing a product that supports Joomla 5 and assuming it supports Joomla 6, or the reverse. Verify per release.

  • Enabling the BC6 plugin to make an old template work and forgetting that it is a stopgap, removed with Joomla 7. See Upgrading from Joomla 5 to 6.

  • Editing the framework’s files directly. Vendor updates overwrite them; use the vendor’s custom-code feature, a child template if the template is inheritable, or standard overrides.

  • Letting a licence expire and discovering at the next security release that updates are blocked.

  • Keeping several unused templates installed. Each is code that needs patching; uninstall what you do not use. Never uninstall the template currently assigned as default.

  • Assuming a JED listing guarantees quality or current compatibility.

  • Treating a builder’s output as accessible. Test it.

Book corrections

Older books such as Joomla! 4 Masterclass (2023) present third-party frameworks and page builders as the usual way to design a site, and describe child templates as brand new. Since Joomla 4.1 child templates are a standard, supported mechanism, and 6.0 ships one in core. The frameworks named there are developed independently of Joomla, so check each one’s Joomla 6 support; as the table above shows, support has arrived at different times. Joomla 4 itself reached end of life in October 2025, so any framework release that only supports Joomla 4 or 3 should be treated as obsolete.

Version notes

  • Joomla 4.1: child templates introduced.

  • Joomla 5.0: ES5 web assets removed from core, so assets declared for them need updating.

  • Joomla 6.0: removals available only through BC6; cassiopeia_extended ships in core.

  • Joomla 6.2 (current): requires PHP 8.3 or newer.

  • Joomla 7.0: BC6 and other compatibility layers removed.