Gantry 5 is the most customizable and powerful version of the framework yet. Packed full of features such as drag-and-drop layout creation and the powerful particle system, Gantry 5 has been designed from the ground up to be lightning fast and hassle free.

Read More

Getting Started

Welcome to Gantry 5 featuring Hydrogen, the first theme built on the Gantry 5 framework. If you want to get started, the best way is to navigate to the Gantry Administrator via your platform's Administration panel.

Once you are in the Gantry 5 Administrator, you will be able to edit virtually every aspect of your site from its Layout to its Style. You can even refine how the menus appear using Gantry 5’s new Menu Editor.

You can set different style preferences for different pages, and have them assigned accordingly using the Assignments administrative panel.

Look for more information on Gantry 5 in our documentation, and stay tuned to the RocketTheme Blog for more information on new features and development updates as development continues.

Learn More

How to Contribute

Thank you for using Gantry 5 and the Hydrogen theme. We welcome you to contribute to the project by submitting bug reports through GitHub, and/or submit your own code changes to the Gantry 5 project for consideration.

Gantry 5 on GitHub

If you would like to assist in creating documentation for Gantry 5, you can do so through the Gantry 5 Documentation project on GitHub.

Gantry Docs on GitHub

Once again, thank you for participating. We hope you enjoy testing Gantry 5 every bit as much as we have enjoyed creating it.

Key Features

Gantry 5 is packed full of features created to empower the development of designs into fully functional layouts with the absolute minimum effort and fuss

Twig Templating

Gantry 5 leverages the power of Twig to make creating powerful, dynamic themes quick and easy.

Layout Manager

Drag-and-drop functionality gives you the power to place content blocks, resize them, and configure their unique settings in seconds.

Particles System

Create, configure, and manage content blocks as well as special features and functionality with the powerful particle system.

25.935MBMemory Usage313msRequest Duration
Joomla! Version5.2.1
PHP Version8.2.26
Identityguest
Response200
Templateg5_hydrogen
Database
Server
mysql
Version
10.11.6-MariaDB-0+deb12u1
Collation
utf8mb4_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:40 [ "HTTPS" => "on" "SSL_TLS_SNI" => "bewust.org" "HTTP_HOST" => "bewust.org" "HTTP_C...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743955567 "last" => 1743955567...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
fabrik
array:1 [ "js" => array:1 [ "head" => array:1 [ "cache" => array:1 [ "e251273eb7...
  • afterLoad (3.63MB) (61.28ms)
  • afterInitialise (10.89MB) (112ms)
  • afterRoute (2.71MB) (27.4ms)
  • beforeRenderComponent com_content (247.36KB) (2.83ms)
  • Before Access::preloadComponents (all components) (822.03KB) (7.51ms)
  • After Access::preloadComponents (all components) (125.55KB) (1.57ms)
  • Before Access::getAssetRules (id:8 name:com_content) (56B) (54μs)
  • After Access::getAssetRules (id:8 name:com_content) (27.39KB) (425μs)
  • afterRenderComponent com_content (2.19MB) (38.13ms)
  • afterDispatch (4.63KB) (232μs)
  • afterRender (4.89MB) (55.7ms)
  • 1 x afterInitialise (10.89MB) (35.65%)
    112ms
    1 x afterLoad (3.63MB) (19.57%)
    61.28ms
    1 x afterRender (4.89MB) (17.79%)
    55.70ms
    1 x afterRenderComponent com_content (2.19MB) (12.18%)
    38.13ms
    1 x afterRoute (2.71MB) (8.75%)
    27.40ms
    1 x Before Access::preloadComponents (all components) (822.03KB) (2.4%)
    7.51ms
    1 x beforeRenderComponent com_content (247.36KB) (0.9%)
    2.83ms
    1 x After Access::preloadComponents (all components) (125.55KB) (0.5%)
    1.57ms
    1 x After Access::getAssetRules (id:8 name:com_content) (27.39KB) (0.14%)
    425μs
    1 x afterDispatch (4.63KB) (0.07%)
    232μs
    1 x Before Access::getAssetRules (id:8 name:com_content) (56B) (0.02%)
    54μs
25 statements were executed, 2 of which were duplicates, 23 unique28.76ms80.36KB
  • SELECT @@SESSION.sql_mode;197μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `ms_session` WHERE `session_id` = ?1.4ms1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `ms_session` WHERE `session_id` = :session_id LIMIT 1260μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `ms_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)6.16ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `ms_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1732μs1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `ms_viewlevels`284μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `ms_usergroups` AS `a` LEFT JOIN `ms_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest404μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `ms_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`2ms5.48KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `ms_menu` AS `m` LEFT JOIN `ms_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`662μs3.95KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `ms_template_styles` AS `s` LEFT JOIN `ms_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1754μs16.86KB/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT s.id, s.template, s.home, s.title AS long_title, s.params FROM ms_template_styles AS s WHERE s.client_id = 0 AND s.template = 'g5_hydrogen' ORDER BY s.id421μs784B/libraries/gantry5/src/classes/Gantry/Joomla/StyleHelper.php:69Copy
  • SELECT * FROM `ms_languages` WHERE `published` = 1 ORDER BY `ordering` ASC362μs1.59KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `ms_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)809μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,`fp`.`ordering` FROM `ms_content` AS `a` LEFT JOIN `ms_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `ms_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `ms_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `ms_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` INNER JOIN `ms_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` WHERE (`fp`.`featured_up` IS NULL OR `fp`.`featured_up` <= :frontpageUp) AND (`fp`.`featured_down` IS NULL OR `fp`.`featured_down` >= :frontpageDown) AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) ORDER BY c.lft, a.featured DESC, fp.ordering, CASE WHEN a.publish_up IS NULL THEN a.created ELSE a.publish_up END DESC , a.created DESC LIMIT 45.04ms6.98KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `m`.`tag_id`,`m`.`content_item_id`,`t`.* FROM `ms_contentitem_tag_map` AS `m` INNER JOIN `ms_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `t`.`published` = 1 AND `m`.`content_item_id` IN (:preparedArray1) AND `t`.`access` IN (:preparedArray2,:preparedArray3)565μs4KBParams/libraries/src/Helper/TagsHelper.php:448Copy
  • SELECT COUNT(*) FROM `ms_content` AS `a` LEFT JOIN `ms_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `ms_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `ms_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `ms_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` INNER JOIN `ms_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` WHERE (`fp`.`featured_up` IS NULL OR `fp`.`featured_up` <= :frontpageUp) AND (`fp`.`featured_down` IS NULL OR `fp`.`featured_down` >= :frontpageDown) AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown)700μs5.59KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:197Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `ms_categories` AS `s` INNER JOIN `ms_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`731μs5.16KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM ms_fields AS a LEFT JOIN `ms_languages` AS l ON l.lang_code = a.language LEFT JOIN ms_users AS uc ON uc.id=a.checked_out LEFT JOIN ms_viewlevels AS ag ON ag.id = a.access LEFT JOIN ms_users AS ua ON ua.id = a.created_user_id LEFT JOIN ms_fields_groups AS g ON g.id = a.group_id LEFT JOIN `ms_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.96ms4.75KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `ms_categories` AS `s` INNER JOIN `ms_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`718μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `a`.`menutype`,`a`.`title` FROM `ms_menu_types` AS `a` WHERE `a`.`client_id` = 0217μs592B/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:138Copy
  • SELECT m.id, m.alias, m.path AS route, m.level, m.parent_id FROM ms_menu AS m WHERE m.menutype = 'mainmenu' AND m.parent_id > 0 AND m.client_id = 0 AND m.published >= 0 ORDER BY m.lft564μs784B/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:791Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `ms_modules` AS `m` LEFT JOIN `ms_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `ms_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`887μs1.86KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `ms_scheduler_tasks` AS `a` WHERE `a`.`state` = 1371μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy
  • SELECT `session_id` FROM `ms_session` WHERE `session_id` = ?251μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `ms_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?2.31ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy