Comparison
Contensio vs. Joomla
Joomla has been around since 2005 and powers millions of sites. But it carries two decades of accumulated complexity. Contensio starts from a modern foundation — Laravel — and builds a CMS that's easier to develop for and easier for editors to use.
Different generations, different assumptions
Joomla was designed in an era before Composer, before Eloquent, before modern PHP had mature conventions. Its extension system, template engine, and database abstraction layer are all custom — a parallel world that predates the PSR standards most PHP developers now work with.
Contensio is built on Laravel. That means Eloquent for database queries, Blade for templates, Artisan for CLI tasks, and the entire Laravel package ecosystem. If you know Laravel, you know how Contensio plugins are built. If you know Blade, you know how themes work.
For editors, the difference is visible in the admin panel. Joomla's admin is powerful but notorious for its steep learning curve. Contensio's admin is opinionated in the other direction — simpler menus, fewer options per screen, and a clear hierarchy between content, media, and configuration.
Feature-by-feature
| Feature | Joomla | Contensio | Notes |
|---|---|---|---|
| Developer stack |
—
Custom Joomla APIs — JFactory, JDatabase, JHTML |
✓ Available
Laravel — Eloquent, Blade, Artisan, service providers |
Contensio uses the same tooling any Laravel developer already knows. |
| License |
—
GPL-2.0 (open source) |
—
AGPL-3.0 (open source) |
Both are fully open source. |
| Custom fields |
—
Built in since Joomla 3.7 |
Built into core
12 field types, translatable, repeaters, relationships |
Joomla has fields in core but fewer types and no translatable flag per field. |
| Multilingual |
Partial / complex
Built in, but complex configuration |
Built into core
Simple — add languages in settings, tabs appear in editor |
Joomla multilingual works, but the setup involves content associations, language modules, and language-specific menus. |
| Admin UX |
Partial / complex
Powerful but steep learning curve for editors |
✓ Available
Clean, editor-focused admin |
|
| Editorial workflow |
Extension required
Content Workflow (Joomla 4+) — basic stages |
Built into core
Submit → approve / soft-reject / hard-reject + emails + audit log |
Joomla 4 added workflow stages but no email notifications or reject types. |
| Content approval emails |
Not available
Not available |
Built into core
Reviewers and authors notified automatically |
|
| SEO metadata |
—
Per-article title and description |
Built into core
Meta title, description, OG image per item per language |
|
| XML sitemap |
Extension required
Xmap or similar extension required |
Built into core
Auto-generated per content type and per language |
|
| Redirects manager |
—
Built-in redirect manager |
Built into core
301/302 redirects with hit counter |
Both have it in core. |
| Extension discovery |
—
Joomla Extension Directory (JED) |
—
Composer packages + admin marketplace |
JED is a large, mature directory. Contensio ecosystem is newer. |
| Template system |
—
Joomla template overrides |
—
Laravel Blade with template hierarchy |
|
| Installation |
—
Web-based installer |
—
Composer + browser-based installer |
|
| Hosting |
—
Any PHP 7.4+ host |
—
Any PHP 8.2+ host with Composer |
In practice
Building a custom extension
Joomla: XML manifest files, JFactory::getApplication(), MVC pattern with Joomla-specific base classes. Unique to Joomla — doesn't transfer to other frameworks.
Contensio: a Composer package with a service provider. Routes, views, migrations, Eloquent models — standard Laravel. Skills transfer completely.
Training a new editor
Joomla: articles, categories, content items, menu items, modules, and component views. Editors need to understand how these relate before they can publish a simple page.
Contensio: content types, content items, media. The concepts map to what editors already understand from WordPress or any other CMS.
FAQ
Is Joomla's multilingual really that complicated?
In practice, yes. Setting it up requires installing language packs, creating language-specific category trees, associating content across languages, setting up language-specific menus, and installing a language switcher module. It works, but it takes a full afternoon to configure correctly. Contensio: go to Settings → Languages, add a language, done.
Can I migrate a Joomla site to Contensio?
No automated importer exists yet. Joomla stores articles in a relational database, so the content is accessible via SQL. A migration script is feasible to write for your specific site structure, but it requires manual work.
Does Contensio have a module system like Joomla?
Contensio has a widget system — widgets are registered by plugins and placed in widget areas defined by the theme. The concept is similar to Joomla modules, but lighter: widgets are PHP classes, areas are named slots in Blade templates.
Joomla has a huge extension directory. Does Contensio have anything comparable?
Not yet. The Contensio plugin marketplace is newer than Joomla's 20-year ecosystem. The approach is to reduce plugin dependency by shipping more in core — so the bar for "I need a plugin for that" is higher. For specialised needs, custom plugins are straightforward to build with standard Laravel skills.
Modern stack. Clean admin. Open source.
Contensio is built on Laravel — familiar to any PHP developer, approachable for any editor.