New Pro + Launch: pick a template and our developers set up your site in 2 business days.
See how it works
Upgrade · CiviCRM upgrade

Run CiviCRM on Joomla 6 – without hacking the core

Donations, memberships, events and mailings keep working while we upgrade your Joomla site to Joomla 6. We make CiviCRM compatible through extensions and hooks, not core edits, so the next CiviCRM update doesn't undo the work.

Excellent
Trustpilot
from Joomla 4 · 5CiviCRM 6.19download “Joomla 5+”PHP 8.3+
CiviCRM reviewmembers.example.orgExample
Joomla5.4 → 6.0Template and extensions updated with itPlan
CiviCRM6.19 · “Joomla 5+”Joomla 6 layer as extensions + hooksLayer
PHP8.2 → 8.3bcmath, intl, zip, mbstring enabledHost
Croncli bootstrapChecked on the new stack, hard time limitFix
Payments2 processorsDonation + recurring contributions testedTest
CiviCRM extensions12 installed10 compatible · 2 update2 to do
Result: plan + fixed quoteUpdate cycle tested
Your upgrade path Joomla + CiviCRM
  1. J4 + CiviCRMJoomla 4No support
  2. J5.4 + CiviCRM 6.19Official “Joomla 5+” downloadSupported
  3. J6 + CiviCRMLayer as extensions + hooksNo official build
  4. J6 + next CiviCRMUpdates keep workingWhere you end up
Proof, not promises

CiviCRM on Joomla 6 – live today

Both sites run CiviCRM on Joomla 6 with the same compatibility layer – and kept it through a CiviCRM update.

All projects
CiviCRM and Joomla 6 today

Official support isn't there yet. Your site can be.

The current release is CiviCRM 6.19 (October 2026). Its Joomla download is labelled “Joomla 5+”. Official Joomla 6 compatibility is still an open task in CiviCRM's Joomla issue tracker (dev/joomla#61): the CiviCRM Joomla plugins have to move to Joomla's new event system.

We close that gap for your site today – without patching CiviCRM core files.

Extensions & hooks, no core edits

Compatibility code lives outside CiviCRM core, so you can keep installing CiviCRM releases.

Update cycle tested

We install a CiviCRM update on staging and check that every fix is still in place afterwards.

Cron that really runs

Scheduled jobs send mailings, reminders and membership renewals. We check that cron runs, logs and stops cleanly on Joomla 6.

What we take care of

What we check and test

Everything that collects money, members or email addresses is tested end to end.

Contributions & memberships

Donation pages, recurring contributions, membership sign-ups and payment processors, tested end to end.

  • contribution pages
  • recurring + processors
  • membership renewals

Events & fundraising pages

Event registration, personal campaign pages and their Joomla menu items keep working.

  • event registration
  • PCP pages
  • Joomla menu items

CiviMail & scheduled jobs

Mailing lists, subscriptions, bounce processing and cron, on the new stack.

  • cron via CLI bootstrap
  • bounce processing
  • job time limits

CiviCRM extensions

Installed CiviCRM extensions reviewed for the new CiviCRM and PHP versions.

  • compatibility per extension
  • update or replace
  • PHP 8.3

Files, paths & databases

CiviCRM lives in several places and can use its own database next to Joomla's.

  • administrator/components/com_civicrm
  • components/com_civicrm · media/civicrm
  • separate CiviCRM DB (dev/joomla#60)

Menu items & clean URLs

Front-end CiviCRM pages are reached through Joomla menu items and long task URLs.

  • task=civicrm/… links
  • links in old emails
  • redirects where needed
How it runs

Five steps, each with something you can check

Your supporters keep donating on the live site until the switch.

  1. Version & extension review

    Joomla, PHP and CiviCRM versions, and every extension the site relies on.

    You getReview report, fixed quote
  2. Staging copy & backups

    Full backups of the Joomla and the CiviCRM database, staging on the target stack.

    You getStaging URL
  3. CiviCRM Joomla 6 layer

    Joomla 6 compatibility via extensions and hooks, starting from CiviCRM's Joomla 5 package.

    You getThe layer, in your repository
  4. Joomla 6 site upgrade

    Template, calendar, editor, backup and download extensions updated together with CiviCRM.

    You getChange log per extension
  5. Cron, payments & update test

    Cron checked, payments tested, and a CiviCRM update installed to prove the fixes stay.

    You getTest report, rollback backup
For developers

Why CiviCRM needs work on Joomla 6

Joomla is moving plugins to its event system. The CiviCRM Joomla plugins still use the old style – the open dev/joomla#61. The pattern of the change, in a plain plugin:

  • Event objects instead of loose arguments
  • SubscriberInterface lists the events
  • Our layer lives outside CiviCRM core
  • A CiviCRM update on staging proves it survives
class PlgUserExample extends CMSPlugin
{
    public function onUserLogin($user, $options = [])
    {
        // $user is an array, $options too
        return true;
    }
}
final class Example extends CMSPlugin implements SubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return ['onUserLogin' => 'onUserLogin'];
    }

    public function onUserLogin(User\LoginEvent $event): void
    {
        $user = $event->getAuthenticationResponse();
    }
}
A generic user plugin, before and after – not CiviCRM's own code.
Know before you upgrade

CiviCRM on Joomla: what can go wrong

RiskWhyWhat we do
Cron stops silentlyCiviCRM's tracker lists Joomla package issues that break the command-line bootstrap, so scheduled jobs stop without an error (dev/joomla#66 and #67).Cron checked after every update, with logging and a hard time limit so runs can't pile up.
PHP & database versionsCiviCRM 6.16+ needs PHP 8.2 or newer; Joomla 6 needs PHP 8.3+ and MySQL 8.0.13+ or MariaDB 10.4+. PHP extensions such as bcmath, intl, zip and mbstring must be enabled.A hosting checklist before we start.
Files, paths & databasesCiviCRM spans three folders and can use its own database (CiviCRM fixed an upgrade bug for that setup in dev/joomla#60).Backups and the migration cover all of it.
Menu items & clean URLsSupporters and emails use long task=civicrm/… URLs through Joomla menu items.We keep the links that are already out there.
Release watch

CiviCRM on Joomla 6, release by release

The latest CiviCRM releases with our notes for Joomla sites, and guides for doing it yourself.

Joomla 6 status Not official yet

CiviCRM 6.19 ships for “Joomla 5+”. Official Joomla 6 support is still an open task (dev/joomla#61). We run it on Joomla 6 today with a compatibility layer outside CiviCRM core.

Checked 16 Oct 2026 See it running on Joomla 6
Latest stable
6.19.1 13 Oct 2026

Fix Regressions in SearchKit, FormBuilder, KCFinder Integration, CKeditor4

Source: civicrm.org Release notes
Who we work with

Agencies, in-house teams and site owners

Much of our work comes from other developers: agencies with client sites on Joomla, and teams who know their site but want senior Joomla hands for the hard part.

Agencies

We work under your name, in your repository and your ticket system.

  • White-label, NDA on request
  • One quote per site, or for a batch of client sites
  • Your client talks to you – we stay in the background

Developers

Hand us only the hard part and keep the rest.

  • One extension, one integration, or a review of your code
  • Commits and pull requests you approve

Site owners

One team for the whole job, explained without jargon.

  • A fixed quote before work starts
  • Maintenance after launch if you want it
What clients say

Clients on our Joomla upgrades

Saurav Wadhwa
Saurav WadhwaManaging Director of IBBZ Accounting
★★★★★
“We use their services for our companies websites maintenance, development and updates … for last 5 years.”
Maintenance · 5 years
Professional, Reliable Joomla Upgrade – Highly Recommended
Gary BirkUS · on Trustpilot
★★★★★
“They worked on a full staging environment … including full backups, a clear rollback plan, and post-deployment support.”
Joomla 4 → 5 upgrade
Brent Williams
Brent WilliamsChief Insider at Multifamily Insiders
★★★★★
“They do a good job of walking through each new project to fully understand the scope, and then are responsive throughout.”
Several projects, several years
Communication was excellent throughout the process
Fred B.US · on Trustpilot
★★★★★
“We asked ThePixel to migrate our website from Joomla 4 to Joomla 6. … I would highly recommend using ThePixel for website work.”
Joomla 4 → 6 migration
A loyal client of thepixel for 3+ years
Abdullahi BusuriManaging Director, AdminPlans
★★★★★
“They consistently provide exceptional support and deliver outstanding results.”
Development · upgrades · servers
Fantastic help
IKPCZ · on Trustpilot
★★★★★
“Fantastic help with migration from Joomla 3 to Joomla 6.”
Joomla 3 → 6 migration
FAQ

CiviCRM Joomla 6 upgrade questions

Not here? Ask in the forum or send us your project.

Does CiviCRM officially support Joomla 6?

Not yet. CiviCRM's Joomla download is labelled “Joomla 5+”, and Joomla 6 compatibility is an open issue in CiviCRM's tracker (dev/joomla#61). We have CiviCRM running on Joomla 6 for clients using extensions and hooks.

Will a future CiviCRM update undo the changes?

No. We don't edit CiviCRM core files. As part of every project we run a CiviCRM update on staging and confirm the fixes are still in place.

Will we lose contacts, contributions or memberships?

No. We work on a full backup of both the Joomla and the CiviCRM database and compare the data before and after the upgrade.

Can you also upgrade the rest of our Joomla site?

Yes. We update the template and extensions such as calendars, editors, backups and download managers in the same project. See Joomla 6 migration.

Who looks after CiviCRM after the upgrade?

We can – our maintenance & support plans cover Joomla, CiviCRM updates and cron monitoring.

Get a quote

Tell us about your CiviCRM site. We reply in under 12 hours

“Fantastic help with migration from Joomla 3 to Joomla 6.”
IKP · Joomla 3 → 6 migration
Excellent
Trustpilot
  1. 01Send the site URL and your Joomla, CiviCRM and PHP versions.
  2. 02We review a copy: you get the plan and a fixed quote.
  3. 03You decide. Donations keep running until the switch.
Cron Job Starts