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).