What is an Extension?
Extensions are anything you can add to Joomla to extend its default functionality. While Joomla has plenty of useful features out of the box, it is not uncommon for someone to want to add something extra to set their site apart.
There are five different extension types in Joomla: Components, Modules, Plugins, Templates, and Languages. These extension types can all be installed in much the same way, though they can perform incredibly different jobs for your site. For example, a plugin and a template are very different things, though each of them extend your site's inherent function and form beyond what comes with the base Joomla package.
Joomla comes with a set of core extensions that make it easy to get up and running with your site. These include any provided templates, plugins, components, and languages needed to access your site directly after installation.
Components
Components are large, often complex extensions that act as the main functional parts of a Joomla site. They are essentially miniature applications which run in conjunction with virtually every other part of the site. Components make up the main content body of the visitor and administrator side of Joomla. Components are the applications used to render the bulk of your site's content on both the frontend and backend.
They can also serve specific purposes such as adding ReCAPTCHA to forms, providing the site's template manager, and working to render the main body of a page.
Modules
A module is a small extension that exists within a specific position in your template, typically around a component. A weather module, for example, will sit in a designated place on the page and relay the current weather to the visitor. Modules can perform a number of different tasks ranging from simple text boxes to complex login functions.
Plugins
A plugin is generally invisible to a visitor and runs commands in response to a trigger event. These events can either be associated with Joomla's included set of trigger events (onSubmitContact, onSave, etc.) or any event defined by other extensions. These functions might change the way a site responds, or initiate a series of actions that carry out the request of the visitor.
Templates
Templates determine the style and general layout properties of a site. Templates are created with multiple files and file types which can include PHP, CSS, or even media files. A template is basically the skin of your site, which is then filled out by any modules or components you assign to appear in designated spaces.
Some templates offer more control to the user than others. For more information about templates and how they work within Joomla, check our site.
Languages
Languages are an essential type of extension within Joomla. They enable the site manager to configure their Joomla installation to support a variety of different languages on either the visitor side, administrator side, or both. While language support exists within the core Joomla platform, you can install third-party language packs which can provide additional support to meet your individual needs.