Joomla! is a free, open source content management system for publishing content on the world wide web and intranets. The system includes features such as page caching to improve performance, RSS feeds, printable versions of pages, news flashes, blogs, polls, website searching, and language internationalization. Joomla is licensed under the GPL, and is the result of a fork of Mambo.

The name Joomla is properly written with an exclamation mark as that is part of the name, but this is commonly omitted.

It is written in the PHP programming language and uses the MySQL database by default.

Joomla Features

The Joomla package consists of many different parts, which are built to be as modular as possible, allowing extensions and integrations to be made easily. An example of such are extensions called "Plugins". (Previously known as "Mambots".) Plugins are background extensions that extend Joomla with new functionality. The WikiBot, for example, allows the author of Joomla content to use "Wikitags" in Joomla articles which will auto-create dynamic hyperlinks to Wikipedia articles when displayed. There are over 2,700 extensions for Joomla available via the Extensions Directory, a site that OpenSourceMatters runs as an official directory of extensions.

In addition to Plugins, more comprehensive extensions are available. "Components" allow webmasters to perform such tasks as build a community by expanding user features, backup a website, translate content and create URLs that are more friendly to search engines. "Modules" perform such tasks as displaying a calendar or allowing custom code like Google AdSense etc to be inserted within the base Joomla code.

Since it has been around longer, there are more extensions available for Joomla 1.0 than for version 1.5, although new 1.5 extensions are becoming available at a remarkable rate. Some of the older 1.0 extensions can be used with version 1.5 if it is set to compatibility mode.

Joomla permits administrators to set global configuration parameters that affect all articles. Every page conforms to these parameters by default, but a page can have its own setting for each parameter. For example, you can elect to show the article author, hide the author, or simply go with the global "show author" parameter.