Applies to CiviCRM 6.19.1 · Joomla 6 Status checked 16 Oct 2026

Short version: not officially, yet. CiviCRM runs on Joomla 6 today with a small compatibility layer, but the package CiviCRM ships is built for Joomla 5. This page tracks the status and is updated with each CiviCRM release.

Current status

Latest CiviCRM6.19.1 (13 Oct 2026) – a bug-fix release
Joomla package label"Joomla 5+"
Officially supported CMS versionsJoomla 5 (plus Drupal, WordPress, Backdrop and Standalone)
Joomla 6 work itemdev/joomla#61 – open since February 2026
Runs on Joomla 6 today?Yes, with a compatibility layer outside CiviCRM core

What is missing for official support

The open work item is short. CiviCRM's three Joomla plugins – the user plugin, the system plugin and the quick-icon plugin – have to be rewritten to Joomla's event system (the full list of their events is below): implement SubscriberInterface, list their events in getSubscribedEvents(), and read event objects instead of loose arguments. Optionally, old version_compare() branches for Joomla 3 and 4 get removed.

CiviCRM itself – contacts, contributions, events, CiviMail – is not affected by the Joomla version. That is why the gap can be bridged safely from outside.

What changed recently on the Joomla side

  • 6.19.0 (7 Oct 2026) fixed "class not found" errors during Joomla installs and upgrades, as part of the Joomla 5 compatibility work (dev/joomla#54), and fixed the upgrade bug for sites where CiviCRM uses its own database (dev/joomla#60).
  • 6.17.3 (26 Aug 2026) fixed a compatibility issue with Joomla's DI container on Joomla 4 and 5 (dev/joomla#67).

Both are steps in the right direction. Neither adds Joomla 6 support by itself.

Should you upgrade to Joomla 6 now?

  • On Joomla 5.4 and nothing pushing you? Stay. Joomla 5.4 has security support until 12 October 2027, and it is what CiviCRM supports.
  • On Joomla 3 or 4? Move now – to 5.4 at least. Those versions no longer get security fixes.
  • Need Joomla 6 now (template, other extensions, hosting)? It works with a compatibility layer that lives outside CiviCRM core, tested through a CiviCRM update. The options are explained in CiviCRM on Joomla 6: the complete guide.

How we keep this page current

We follow every CiviCRM release and install it on a Joomla 6 test site before it goes on client sites. The result per release is on our CiviCRM Joomla 6 upgrade page, under Release watch. When CiviCRM marks Joomla 6 as supported, this page will say so first.

The three plugins, precisely

From the civicrm-joomla source (October 2026):

Plugin (group)Events it handlesWhat it does
plg_user_civicrm (user)onUserAfterSave, onUserAfterSaveGroup, onUserLogin, onUserAfterDeleteresets CiviCRM's navigation cache; on user delete removes the user's civicrm_uf_match row
plg_system_civicrmsys (system)onBeforeCompileHead, onExtensionBeforeInstall, onExtensionAfterInstall, onExtensionAfterUpdateadmin head assets and the CiviCRM install/upgrade hooks
plg_quickicon_civicrmicon (quickicon)onGetIconsthe CiviCRM icon on the Joomla dashboard

All three still use method names as event names (function onUserAfterSave($user, $isnew, $success, $msg)) and branch on JVERSION. Joomla 6 still calls such listeners, with a deprecation, through the backward-compatibility layer in CMSPlugin. Joomla has tagged that layer "will be removed in 7.0". So the honest status is: works on Joomla 6, needs dev/joomla#61 before Joomla 7. Contact matching (Joomla user ↔ CiviCRM contact) is not in these plugins. CiviCRM core does it when a user first loads CiviCRM, which is why it keeps working whatever happens to the plugins.

Want CiviCRM on Joomla 6 before official support? We do it with extensions and hooks, not core edits – and prove it survives a CiviCRM update.

See how we do it →