A Joomla! egy ingyenes és nyílt forráskódú tartalomkezelő rendszer (Content Management System, CMS), amely saját modell-nézet-vezérlő (MVC) alapú webalkalmazás-fejlesztési keretrendszert tartalmaz. Ezeknek a technológiáknak a segítségével könnyedén oszthatunk meg különböző típusú tartalmakat a világhálón és a helyi intraneten egyaránt.

Maga a Joomla! objektumorientált programozási (OOP) szemléletet követ a fejlesztők által bevezetett szoftvertervezési minta alapján, mindezt PHP nyelven. Az adatok tárolása MySQL, PostgreSQL vagy Microsoft SQL Server relációsadatbázis-kezelő rendszerben történik.

A rendszer egy nagy közösség által fejlesztett moduláris termék, amelynek komponenseit úgy állították össze, hogy a legszélesebb körök igényeit is ki tudja elégíteni, továbbá lerövidítse az üzembe helyezést, valamint a tartalom felvitelének idejét. Előnyei közé tartozik a moduláris felépítés, a magas szintű hozzáférés-vezérlés, amelynek segítségével felhasználókat, illetve felhasználói csoportokat tudunk hozzárendelni egyes adminisztratív feladatokhoz, valamint az egyes tartalmak megtekintéséhez. Áttekinthető adminisztrációs felülete és ennek egyszerű kezelése a kevésbé hozzáértő felhasználó számára is átlátható.

A Joomla! számokban:

több mint 110 millió letöltés, több mint 10 ezer bővítmény és sablon, több mint 2 millió működő weboldal, több mint 1500 közösségi fejlesztő, több mint 550 ezer sornyi kód, több mint 76 támogatott nyelv.

Kialakulása 2005. augusztus 17-én egy maroknyi kivált fejlesztő létrehoztak egy új tartalomkezelőt a Mambo elágazásaként. A kiválás oka, hogy a Mambo mögött lévő alapítvány csak mérsékelten foglalkozott a fejlesztők és a közösség érdekeivel.

Ezt követően az újonnan megalakult fejlesztőcsapat létrehozta az OpenSourceMatters.org-ot, ahol különféle információkkal láttak el a felhasználókat, a fejlesztőket, a webdizájnereket és a közösség összes többi tagját. A projekt vezetője Andrew Eddie nyílt levélben fordult a közösség tagjaihoz a hivatalos Mambo fórumon, hogy csatlakozzanak a kezdeményezésükhöz. A bejegyzés megjelenítését követően alig egy nap alatt, több mint 1000 ember csatlakozott, akik nyíltan támogatták az új kezdeményezést.

2005. augusztus 18-án Andrew Eddie felkérte a közösséget, hogy javasoljon nevet az új projektnek. A fejlesztő csapat úgy döntött, hogy a projekt végső nevét a közösség javaslatai alapján határozzák meg, de ez végül nem valósult meg. A csapat végül egy olyan nevet választott, amely nem volt a közösség által javasolt nevek között.

2005. szeptember 22-én bejelentették, hogy a projekt neve „Joomla!” lesz. Maga a név egy szuahéli eredetű szó. Fonetikus kiejtése "dzsumla", a jelentése pedig mindenki együtt, egy egészként."Joomla!" . Open Source Matters.

2005. szeptember 26-án a fejlesztő csapat felkérte a közösséget, hogy szavazzák meg a logó koncepcióját, majd a szavazást eredményét 2005. szeptember 29-én hirdették ki.

2005. október 9-én kerültek publikálásra az új CMS iránymutatásai, a kézikönyv és az elfogadott logó forrásai.

Verziótörténet 2005. szeptember 15-én jelent meg a Joomla! 1.0. Alapja a Mambo 4.5.2.3-as verziója, amiben számos hibajavítás mellett egy közepes szintű biztonsági rés is javításra került.

2008. január 21-én került kiadásra a Joomla! 1.5. Az utolsó verzió az 1.5-ös szériából az 1.5.26, amit 2012. március 27-én publikáltak. Ez volt az első hosszú távú támogatottságot élvező kiadás.

2011. január 10-én került kiadásra a Joomla! 1.6. Ebben a verzióban jelent meg az új hozzáférés-kezelő rendszer, az átdolgozott kategória architektúra, továbbá a megújult adminisztrációs felület is itt mutatkozott be először.

2011. július 19-én került kiadásra a Joomla! 1.7. A számos biztonsági hiba javítása mellett már továbbfejlesztett adatmigrációt is támogatott.

2012. január 24-én jelent meg a Joomla! 2.5. Ez a kiadás eredetileg Joomla! 1.8-ként érkezett volna, de mivel a soron következő verziót hosszú támogatottságúnak szánták, ezért a fejlesztők egy egységes nevezéktan mellett tették le a voksukat, amiben minden .5-ös végződésű kiadás hosszú távú és minden .0, .1 és .2 végződésű kiadás rövid távú támogatottságot élvező verzió lesz.

2012. szeptember 27-én került kiadásra a Joomla! 3.0. A számos újdonságai közül a legfontosabb, hogy a legnépszerűbb CMS-ek közül elsőként támogatja rendszerszinten a weboldalak reszponzív megjelenítését.

2013. április 24-én érkezett a Joomla! 3.1. A verzió legnagyobb újdonsága, hogy a szolgáltatások közé bekerült a natív címkézési funkció.

2013. november 6-án került kiadásra a Joomla! 3.2. A megjelent verzió az egyik legtöbb újdonságot tartalmazó kiadás a Joomla! életében. Bevezetésre került a tartalom verziókövetés, a Joomla! áruház, a RAD réteg, a kétfaktoros azonosítás, a BCrypt titkosítás, valamint továbbfejlesztették a kiszolgálói oldal adminisztrációs eszközeit, a sablonkezelőt, valamint számos kisebb fejlesztés is az alaprendszer részévé vált.

2014. április 30-án jelent meg a Joomla! 3.3. A verzió újdonságai közé tartozik, hogy a fejlesztők növelték a biztonságot, valamint az oldalak betöltési sebességet, valamint a belső MooTools szkripteket jQuery-re cserélték.

2015. február 24-én érkezett a Joomla! 3.4 verziója. A verzió főbb újdonságai, hogy továbbfejlesztésre került az adminisztrációs oldal megjelenítése, valamint integrálásra került a ReCaptcha 2.0-s verziója.

2016. március 15-én jelent meg a Joomla! 3.5. Az új verzió mérföldkő volt a Joomla! fejlesztésében. 34 új funkcióval bővült a rendszer, többek között a PHP 7 szkriptnyelv támogatásával, ami jelentősen megnövelte a webhelyek sebességét.

2016. július 12-én érkezett a Joomla! 3.6 verziója. Ez több mint 400 frissítést, illetve fejlesztést tartalmaz. A webhelyek könnyebben kezelhetőek és számos UX (felhasználói élmény fokozására szolgáló) fejlesztést tartalmaznak.

2017. április 25-én került kiadásra a Joomla! 3.7, melyet két fontos frissítés követett 2017. május 16-án. Ez a verzió lényegesen átformálta a Joomla! használatát és funkcióit.

2017. szeptember 19-én került kiadásra a Joomla! 3.8. Az új verzióban bevezetésre került az új útvonalválasztási rendszer, a Joomla! 4 kompatibilitási réteg, továbbfejlesztésre került a mintaadat telepítés, valamint bekerült a rendszerbe a Sodium titkosítás támogatása.

2018. október 30-án érkezett meg a Joomla! 3.9 verziója. Az új kiadásban felhasználói adatvédelemmel kapcsolatos fejlesztések kerültek be.

Az alaprendszer funkciói Mobilnézetet támogató sablonrendszer Kategorizálható tartalomkezelés beépített WYSIWYG-szerkesztővel Natív többnyelvűség Intelligens frissítéskezelő-rendszer A tartalomkezeléstől elkülönülő menürendszer Magas szintű hozzáférés- és felhasználókezelés Beépített keresőbarát hivatkozások generálása ékezetes betűkészlet támogatásával Tartalom verziókövetés Weben keresztüli bővítménytelepítés

Az alaprendszer részei Az Joomla! tartalomkezelő moduláris felépítésű, így a szolgáltatások önálló részegységekből állnak, amelyek külön-külön adminisztrálhatók. A Joomla!-ban öt fajta bővítménytípust különböztethetünk meg, amelyek használatával, további funkciókkal bővíthetők a weboldalak.

Komponensek A legnagyobb és legösszetettebb bővítmények, úgy tekinthetünk rájuk, mint valamilyen mini alkalmazásokra. A legtöbb komponens két részből áll, egy adminisztrátor oldali részből és egy felhasználó oldali részből. Minden alkalommal, amikor meghívunk egy oldalt, akkor egy komponens töltődik be. A Joomla!-ban található menüpontok egy-egy Joomla! komponensből állnak. Átirányítás: Közvetlen átirányításokat készíthetünk a Joomla oldalaink között. Hírcsatornák: Hírcsatornánkat hozhatunk létre, amiket külön kategorizálva tudunk kezelni. Hirdetések: Itt kezelhetjük a hirdetéseinket. Különféle szűrési szempontok alapján vizsgálhatjuk meg egy-egy kampány sikerességét. Intelligens kereső: Tartalomképeket készíthetünk a keresések eredményeiből. Joomla! frissítés - Intelligens frissítőrendszer, aminek a segítségével közvetlenül tudjuk frissíteni a Joomla oldalainkat. Kapcsolattartók: Kapcsolattartókat hozhatunk létre, miket külön kategorizálva tudunk kezelni. Keresés: Különféle statisztikákat készíthetünk az oldalon történő keresések eredményeiből. Üzenetküldés: Segítségével különböző üzeneteket küldhetünk az adminisztrátoroknak vagy az oldal felhasználóinak. Modulok Segítségükkel könnyedén és rugalmasan jeleníthetők meg tetszőleges tartalmak. A modulok úgy néznek ki, mint valamilyen információs blokkok, ilyen például a Keresés vagy a Bejelentkezés modul. A modulokat a Joomla! sablon által definiált pozíciókban helyezhetők el. Archivált cikkek: Ez a modul az archivált cikkeket tartalmazó naptári hónapok listáját készíti el. Egy cikk állapotának Archiváltra váltása után ennek a listának a készítése automatikusan történik. Bejelentkezés: Ez a modul felhasználónévből és jelszóból álló bejelentkezés űrlapot jelenít meg. Cikkek - Kapcsolódó cikkek: Ez a modul az épp olvasott cikk-kel kapcsolatos cikkeket jeleníti meg. Ezeknek a kapcsolatoknak a létesítése a meta kulcsszavak alapján történik. Cikkek - Rövid hírek: A Rövid hírek modul rögzített számú cikket jelenít meg egy adott kategóriából vagy kategória-készletből. Cikk-kategória: Ez a modul egy vagy több kategóriából jelenít meg cikklistát. Cikk-kategóriák: Ez a modul egy kategórialistát jelenít meg egy szülőkategóriából. Egyéni HTML: Ez a modul WYSIWYG-szerkesztővel saját HTML-modult készítését teszi lehetővé. Friss hírek: Ez a modul a legutoljára közzétett és aktív cikkek listáját mutatja. Fűző: Ez a modul a megadott helyre mutató keret ablakot jelenít meg. Hírcsatorna megjelenítése: Ez a modul egy közvetített hírcsatorna megjelenítését teszi lehetővé. Hirdetések: A Hirdetés modul az aktív hirdetéseket jeleníti meg a komponensből. Intelligens kereső modul: Ez egy Intelligens kereső modul. Keresés: Ez a modul egy keresőmezőt jelenít meg. Ki van jelen: A Ki van jelen modul a webhelyet épp böngésző névtelen (pl. vendég) felhasználók, és a regisztrált felhasználók (bejelentkezettek) számát mutatja. Közzététel hírcsatornán: Intelligens modul hírcsatornán történő közzétételhez, mely elkészíti annak az oldalnak a hírcsatornáját, ahol a modul látható. Lábléc: Ez a modul a Joomla szerzői jogi információját jeleníti meg. Legolvasottabb tartalom Ez a modul azoknak a jelenleg közzétett cikkeknek a listáját mutatja, melyeknek a legtöbb oldalmegtekintésük van. Legújabb felhasználók: Ez a modul a legutoljára regisztrált felhasználókat mutatja Menü: Ez a modul egy menüt jelenít meg a felhasználói oldalon. Nyelvváltó: Ez a modul az elérhető tartalomnyelvek listáját jeleníti meg (a Nyelvkezelő Tartalom fülén meghatározottak és közzétettek szerint) a köztük való átváltáshoz a Joomla többnyelvű webhelyként való használatakor. Statisztika: A Statisztika modul a webhely felhasználóinak statisztikájával, az adatbázisban tárolt cikkek és az összegyűjtött webes hivatkozások számával együtt információkat jelenít meg a kiszolgálótelepítésről. Útkövetések: Ez a modul az útkövetéseket jelzi ki. Véletlenszerű kép: Ez a modul egy véletlenszerűen kiválasztott képet jelenít meg a megadott könyvtárból.

Beépülő modulok Kis, fejlett bővítmények, amelyek egy esemény bekövetkezésekor végrehajtanak egy adott funkciót. Több típusa is van, amelyek segítségével például rendszerszintű módosításokat alkalmazhatók, vagy egy WYSIWYG-szerkesztő jeleníthető meg.

Sablonok Ezek a bővítmények felelősek az oldal kinézetéért. Segítségükkel jeleníthetők meg az oldalon található komponensek és modulok. A mai sablonok legtöbbször valamilyen saját keretrendszert használnak (pl. Gantry, T4, YOOtheme Pro), amelyek segítségével további szolgáltatásokat tudnak nyújtani, például „fogd és vidd”-alapú elrendezés kialakítást.

Nyelvek Nagyon egyszerű kiterjesztések. Segítségükkel lokalizálhatjuk a Joomla! alaprendszerünk és a hozzá tartozó bővítményeinket.

Rendszerkövetelmények Webszerver Adatbázis kiszolgáló