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 CiviCRM | 6.19.1 (13 Oct 2026) – a bug-fix release |
|---|---|
| Joomla package label | "Joomla 5+" |
| Officially supported CMS versions | Joomla 5 (plus Drupal, WordPress, Backdrop and Standalone) |
| Joomla 6 work item | dev/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 handles | What it does |
|---|---|---|
plg_user_civicrm (user) | onUserAfterSave, onUserAfterSaveGroup, onUserLogin, onUserAfterDelete | resets CiviCRM's navigation cache; on user delete removes the user's civicrm_uf_match row |
plg_system_civicrmsys (system) | onBeforeCompileHead, onExtensionBeforeInstall, onExtensionAfterInstall, onExtensionAfterUpdate | admin head assets and the CiviCRM install/upgrade hooks |
plg_quickicon_civicrmicon (quickicon) | onGetIcons | the 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 →
