Joomla! è un content management system (CMS) per la realizzazione di siti web, scritta in linguaggio PHP e pubblicata con licenza libera GNU GPL v2. Nato nel settembre 2005 da una scissione (fork) dal codice del CMS (Content Management System) Mambo, è attualmente in rapido sviluppo, sotto la guida di un gruppo di programmatori (per buona parte ex-sviluppatori di Mambo) riuniti nell'associazione no-profit Open Source Matters[1]. È uno dei CMS più conosciuti al mondo.
Il CMS è distribuito sotto forma di pacchetto compresso. È sufficiente scompattare l'archivio in una cartella pubblica di un server Web dotato di supporto a PHP ed avere a disposizione un database MySQL per i dati del programma. Dopo un processo di installazione (più propriamente, di prima configurazione) di pochi minuti, il sito è operativo.
Tra le caratteristiche principali proposte ci sono:
- Alto grado di personalizzazione grazie alle numerose estensioni moduli, componenti e plugin (vedi più sotto) disponibili sia come Software libero che con altre licenze;
- Caching delle pagine per incrementare le prestazioni;
- Funzioni di Search Engine Optimization, per facilitare l'indicizzazione dei contenuti da parte dei motori di ricerca;
- Feeding RSS, che permette ai visitatori di essere avvisati degli aggiornamenti dei contenuti mediante l'utilizzo di un feed reader;
- Versione stampabile delle pagine;
- Esportazione delle pagine in formato PDF;
- Pubblicazione tipo Blog;
- Sondaggi;
- Ricerca testuale su tutti i contenuti inseriti;
Localizzazione internazionale, che permette la traduzione di ogni funzionalità del software nella propria lingua;
Altri componenti open source disponibili separatamente, sponsorizzati dal team di sviluppo di Joomla! ma non sviluppati dallo stesso team consentono, fra le altre cose, di:
- Creare e gestire forum di discussione (Joomlaboard / Fireboard / Kunena);
- Tradurre l'intero contenuto del sito per renderlo fruibile in più lingue (Joom!Fish);
- Migliorare la gestione degli utenti registrati e potenziare loro interazioni, creando un effetto community (Community Builder).