Joomla is a very powerful CMS with high scalability. Last time, I mentioned about WordPress vs Joomla in Joomla 4 news. That may not be 100% precisely true. But for my perspective, Joomla is a very suitable platform to build multi-functional site with thousands of extensions support.
In one simple comment, Joomla extension is similer with WordPress plugin, but the more complicated thing is, Joomla extension have several types, while WordPress has only one type.
In WordPress, everything is plugin. But in Joomla, it’s called the “extension”. The extension could be a component, a module or a plugin. To make it easier to understand, I move a picture from Joomla document.
In the illustration chart, the top level is called “template”, which is the same as “theme” in WordPress. It’s not the topic in this post. Now, we will talk about component, plugin, and module.
Component is the main functionl unit. For example, news content is powered by “com_content” component. Contacts is powered by “com_contact” component. Component has two parts: the site and the admin.
The site part takes the responsibility to show the body of the page. The admin part is for site administrator to configure how the site renders the page body.
The component is driven by a menu item or url. Each url in Joomla will point to a page which is rendered by component. Here is the details about Joomal component.
Module is simplier than component. It could be a simple piece of HTML code. If we say the component renders the page main content, the module will be around the component, for exmaple, breadcrumb, webinar, banners and online users.
Plugin is simple but hard to explain. We can consider it is a event handler. For example, during the process of page renderring, there will be a set of events fired. We can define some plugins to handle the event and do certain jobs. For example, a plugin could be used to convert some words to be emoji.
Here are lots of answers on stack overflow which are talking about the difference between components, modules, extensions and plugins in Joomla. Hope all these information could help us to understand Joomla deeply.