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

Joomla extensions built the way we build our own

Components, modules and plugins on Joomla's current architecture – namespaced MVC, the DI container, the event system and the Web Services API – packaged with an update server, so your extension stays maintainable for years. Built by the team behind the ThePixel extensions.

Excellent
Trustpilot
Joomla 5 · 6PHP 8.1+ / 8.3+MVC namespacedupdates update server
Architecture

One package, the right extension types

An example: a booking system with an admin, a module, reminders and an API for a mobile app.

Joomla 6 site · pkg_booking com_bookingadmin + site MVCACL · forms · workflowssql/updates mod_booking_next plg_system_booking scheduler task · reminders plg_webservices_booking #__booking_* tables · update server · changelog Mobile appJSON:API · token auth Payment providersigned webhooks CRMqueued sync, one direction per field
Proof

Extensions we build and ship ourselves

The same team, the same standards. Install one and read the code.

All extensions
PX File Manager
PX File ManagerComponent · file tree, editor, permissions
PX Mega Menu
PX Mega MenuModule · visual builder in the module settings
PX Content
PX ContentBlocks that live in your template
PX SEO
PX SEOPlugin · caching, deferred CSS, lazy images
What to build

Component, module or plugin?

We pick the smallest extension type that does the job – often a combination in one package.

Component

  • Its own data, admin screens and pages
  • Directories, bookings, portals, dashboards
  • ACL per item, workflows, API

Module

  • A piece of output in a position
  • Lists, widgets, calls to action
  • Reads from a component or an API

Plugin

  • Reacts to events
  • Integrations, auth, content filters
  • Scheduled tasks and web services routes
How we build

What every extension gets

The standards our own extensions are built to.

Architecture

Joomla's current patterns, nothing legacy.

  • namespaced MVC
  • services/provider.php
  • DI container

Security

Checked on every action that changes data.

  • CSRF token checks
  • ACL via access.xml
  • filtered input · bound queries

Database

Upgrades that never need manual SQL.

  • sql/updates per version
  • #__schemas tracking
  • install + uninstall scripts

API

Your data available to apps and partners.

  • web services plugin
  • JSON:API responses
  • token auth

Packaging

Installs and updates like any Joomla extension.

  • package manifest
  • update server
  • changelog XML

Docs & tests

So the next developer can work on it.

  • README + admin help
  • tests for the logic
  • tested on Joomla 5 and 6
For developers

The code you get

Standard Joomla 5 / 6 structure – any Joomla developer can pick it up. No framework of ours on top, no legacy classes.

  • Service provider registers MVC + dispatcher
  • Token and ACL checks in every task
  • Typed, namespaced classes
  • Routes through the Joomla router
return new class () implements ServiceProviderInterface {
    public function register(Container $container): void
    {
        $container->registerServiceProvider(new MVCFactory('\\Acme\\Component\\Booking'));
        $container->registerServiceProvider(new ComponentDispatcherFactory('\\Acme\\Component\\Booking'));

        $container->set(ComponentInterface::class, function (Container $container) {
            $component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class));
            $component->setMVCFactory($container->get(MVCFactoryInterface::class));

            return $component;
        });
    }
};
public function approve(): void
{
    $this->checkToken();

    if (!$this->app->getIdentity()->authorise('booking.approve', 'com_booking')) {
        throw new NotAllowed(Text::_('JERROR_ALERTNOAUTHOR'), 403);
    }

    $id = $this->input->getInt('id');
    $this->getModel('Booking')->approve($id);

    $this->setRedirect(Route::_('index.php?option=com_booking&view=bookings', false));
}
Two files from a booking component.
How it runs

Six steps from idea to updates

Developers on your side can review every commit.

  1. Requirements

    What it does, for whom, and what it connects to.

    You getRequirements summary, fixed quote
  2. Architecture & data model

    Extension types, tables, permissions and API.

    You getSpec you approve
  3. Development

    In your repository, built in small, reviewable steps.

    You getCommits you can review
  4. Testing & QA

    On Joomla 5 and 6, with your data and permissions.

    You getTest report
  5. Release

    Installable package with an update server and changelog.

    You getPackage + docs
  6. Support

    Fixes and Joomla updates, if you want us to keep it current.

    You getOptional maintenance
What you get

Delivered with every extension

So it keeps working after we hand it over.

DeliverableWhat it isWhy it matters
Installable packageOne pkg_ zip with all partsInstalls on any Joomla 5 / 6 site, including staging.
Update serverXML feed with versions and checksumsUpdates appear in Joomla like any other extension.
Database updatesVersioned SQL filesUpgrades run on their own, no manual SQL.
SourceIn your repositoryYour team or another developer can continue the work.
DocumentationAdmin help and developer READMEEditors know how to use it; developers know how it works.
Real projects

Client work

All projects
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 development

Vincenzo Galliano
Vincenzo GallianoCTO at Vivi City Network
★★★★★
“ThePixel led a full revamp of vivi.city … Their technical depth and reliable delivery made a real difference.”
Laravel · API · redesign
User-friendly but also incredibly fast
Volker AlsenOwner and CEO of Posada Nena
★★★★★
“They built a stunning website and an efficient travel booking platform for Posada Nena.”
Website + booking platform
The site is always in the safest hands
Tamás HetényiManaging director of Heto Social Network
★★★★★
“Excellent support, quick solutions from the idea to the realization in many different fields.”
Updates · improvements · maintenance
Complete, well done and on time
Robert FarrisUS · on Trustpilot
★★★★★
“He has completed database work, configuration of modules, components and other items within the scope of work.”
Joomla development
A loyal client of thepixel for 3+ years
Abdullahi BusuriManaging Director, AdminPlans
★★★★★
“They consistently provide exceptional support and deliver outstanding results.”
Development · upgrades · servers
FAQ

Custom extension questions

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

Does it work on Joomla 5 and Joomla 6?

Yes. We build on the current APIs and test on both, with PHP 8.1+ on Joomla 5 and PHP 8.3+ on Joomla 6.

Can you port our Joomla 3 or 4 extension?

Yes – rewritten to namespaced MVC and the event system, not wrapped in compatibility layers. See Joomla 6 migration.

Can you take over an extension another developer wrote?

Yes. We review it first and tell you what we would keep, fix or rewrite.

Where does the source code live?

In your repository, with documentation, so you are never locked in.

Can it talk to our CRM, payment provider or ERP?

Yes – through plugins and scheduled tasks, with timeouts, retries and logs. See back-end development.

Get a quote

Describe the feature. We reply in under 12 hours

“He has completed database work, configuration of modules, components and other items within the scope of work.”
Robert Farris · Joomla development
Excellent
Trustpilot
  1. 01Tell us what it should do and which systems it connects to.
  2. 02We write the spec: you get it with a fixed quote.
  3. 03You decide. Nothing starts before you agree to the plan.
Cron Job Starts