Joomla Framework vs Joomla CMS comparison illustration

Joomla Framework vs Joomla CMS: When to Use Which

Marco Vasquez
Written By Marco Vasquez
Marcus Chen
Reviewed By Marcus Chen
Last Updated April 23, 2026

When we first started building extensions for Joomla, we quickly realized that the platform offers two distinct layers of technology: the Joomla Framework and the Joomla CMS. Both are powerful, but they serve different purposes. In this article we walk through the anatomy of each layer, compare them side by side, and help you decide which one fits your next project.

What Is the Joomla Framework?

The Joomla Framework is a collection of independent PHP packages that provide low‑level services such as database access, HTTP handling, console commands, and configuration management. Each package lives in its own repository on GitHub joomla‑framework and can be installed via Composer. Because the packages are decoupled, you can use them to build anything from a simple CLI script to a full‑stack web application without pulling in the entire CMS.

In practice the framework acts like a toolbox for developers who want a solid, battle‑tested foundation while retaining full control over the application architecture. It is language‑agnostic in the sense that it does not enforce a particular front‑end, but it does assume a PHP environment and follows PSR‑4 autoloading standards.

What Is the Joomla CMS?

The Joomla CMS is the content‑management system that most people recognize when they hear “Joomla.” It bundles the framework packages together with a full set of features: article management, menu handling, user authentication, extensions, and a templating engine. The CMS is delivered as a single installable package that can be deployed on any standard LAMP stack.

While the CMS relies on the same underlying code as the framework, it adds a layer of conventions and UI components that make it easy for non‑technical users to create and manage websites. If you need a ready‑made back‑end, multilingual support, and a large ecosystem of extensions, the CMS is usually the quickest path to a functional site.

Joomla Framework vs Joomla CMS: Key Differences

AspectJoomla FrameworkJoomla CMS
PurposeProvides reusable PHP libraries for building custom applications.Delivers a complete website platform with UI, routing, and extensions.
InstallationComposer‑based, individual packages can be added as needed.Single package installation via web installer or CLI.
Learning CurveRequires knowledge of PHP, Composer, and the individual packages.Lower for content editors; developers still need to understand MVC.
FlexibilityHigh – you can mix and match packages, replace parts, or use them outside Joomla.Moderate – the CMS dictates the overall structure.
PerformancePotentially lighter because you load only what you need.Heavier due to the full stack, but still well‑optimized.
Use CasesMicro‑services, API back‑ends, custom admin tools, CLI utilities.Corporate sites, blogs, e‑commerce, community portals.

Core Joomla Framework Packages You Should Know

Database Package

The joomla/database package abstracts PDO and offers a fluent query builder. It supports multiple drivers (MySQL, PostgreSQL, SQLite) and integrates with Joomla’s event system, allowing you to hook into query execution without touching core code.

HTTP Package

The joomla/http package handles client‑side requests, server‑side responses, and provides utilities for cookie management, redirects, and header manipulation. It follows PSR‑7 standards, making it compatible with many modern middleware stacks.

Application Package

The joomla/application package supplies the base class for both web and console applications. It manages the lifecycle, input handling, and error handling, giving you a consistent entry point for any PHP script.

Console Package

With joomla/console you can create command‑line tools that integrate seamlessly with the framework’s configuration and logging facilities. This is especially handy for scheduled jobs, data migrations, or custom deployment scripts.

Registry Package

The joomla/registry package offers a flexible key‑value store that can be persisted to JSON, INI, or XML. It powers configuration handling across the framework and the CMS, and it supports dot‑notation for nested values.

When to Use the Joomla Framework

We reach for the Joomla Framework whenever the project does not need the full CMS stack. Typical scenarios include:

  • Building a RESTful API that serves data to mobile apps.
  • Creating a CLI utility for bulk content import or site maintenance.
  • Developing a micro‑service that shares the same database schema as a Joomla site.
  • Integrating Joomla’s authentication system into a custom PHP application.

Because the framework is Composer‑driven, we can keep the dependency footprint small and upgrade individual packages without touching the rest of the system. This modularity also makes it easier to write automated tests, as each package can be mocked or stubbed independently.

When to Use Joomla CMS Instead

We choose the Joomla CMS when we need a ready‑made content administration interface, multilingual support, or a large catalog of extensions. Typical use cases are:

  • Corporate websites that require a non‑technical team to edit pages.
  • E‑commerce stores built with extensions like VirtueMart or J2Store.
  • Community portals that rely on built‑in user groups, ACL, and messaging.
  • Projects where time‑to‑market is a priority and the CMS’s out‑of‑the‑box features reduce development effort.

In these situations the CMS’s built‑in MVC architecture, templating system, and plugin events give us a solid foundation that can be extended with custom components, modules, or plugins. The Joomla development guide provides step‑by‑step instructions for creating such extensions.

Can You Use Both Together?

Yes. The framework packages are already bundled inside the CMS, so any custom extension you write can directly tap into them. For example, a component may use the joomla/database package for complex queries while still rendering through the CMS’s view layer. This hybrid approach lets us enjoy the flexibility of the framework without sacrificing the convenience of the CMS’s UI.

When we need to go beyond the CMS’s scope—say, to expose a public API—we often create a separate Composer project that pulls in the same framework packages. The API can then share the same database connection and authentication logic as the main site, ensuring consistency across both front‑ends.

How to Get Started with the Joomla Framework

Getting up and running with the Joomla Framework is straightforward. Follow these steps:

  • Install Composer if you haven’t already.
  • Create a new project folder and run composer require joomla/database joomla/http joomla/application joomla/console joomla/registry.
  • Set up an index.php that boots the Application class and registers the needed services.
  • Refer to the official framework documentation for detailed API usage.
  • Explore our API development article for practical examples.

Because the framework follows modern PHP standards, you can also integrate it with other libraries such as Symfony’s HttpFoundation or Laravel’s Eloquent, provided you respect the PSR‑4 autoloading rules.

Frequently Asked Questions

Is Joomla a framework or a CMS?

Joomla is both. The core CMS is built on top of the Joomla Framework, which can be used independently. Think of the framework as the foundation and the CMS as the house that sits on it.

What is the best framework for Joomla?

When we talk about “the best framework for Joomla,” we usually mean the official Joomla Framework because it is tightly aligned with the CMS’s architecture and receives regular updates. Third‑party options like Joomlatools Framework exist, but they are built on top of the official packages.

Can I use Joomla Framework packages in Laravel or Symfony?

Yes. Since the packages are Composer‑compatible and follow PSR standards, you can require them in any modern PHP project, including Laravel and Symfony. Just be mindful of potential name collisions and configuration differences.

Is the Joomla Framework still maintained?

Absolutely. The framework receives regular security patches and feature updates. You can track the release schedule on the GitHub joomla‑framework page, and the community actively contributes to its evolution.

Whether you are building a lightweight API, a custom admin tool, or a full‑featured website, understanding the distinction between the Joomla Framework and the Joomla CMS helps us make smarter architectural decisions. By using the framework’s modularity when appropriate and the CMS’s out‑of‑the‑box capabilities when needed, we can deliver solutions that are both performant and maintainable.

For more background, read our what Joomla is overview, explore why the Joomla CMS is still relevant, or start building with our component creator tools and module generator.

Marco Vasquez
Written By

Marco Vasquez

Developer Relations

Marco is a full-stack developer and Joomla contributor with deep expertise in template development, module creation, and Joomla 5 architecture. He translates complex technical concepts into clear, actionable tutorials that developers at every level can follow.

Last Updated: April 23, 2026
🇬🇧 English | 🇸🇪 Svenska | 🇫🇮 Suomi | 🇫🇷 Français