Differences between Modules, Plugins, Extensions, and Expansions
ExpressionEngine includes different types of add-ons:
- Plugins are small run-time enhancements. They are simple to create. The plugin architecture is designed to enable the plugin's author to affect the output of ExpressionEngine in a wide variety of ways.
- Modules are larger systems that can be integrated into the ExpressionEngine control panel. Almost anything that can be achieved as a stand-alone application can be designed as an ExpressionEngine module. Modules typically store content in the database and can have actions associated with them.
- Extensions are "hooks" in the system that allow the add-on to pass information and add functionality to existing interfaces.
- Expansions add a new layer of functionality to ExpressionEngine. There is only one expansion: the Multiple Site Manager.
Review thedevelopers section for more information.
User Contributed Notes
Modules can have member-group based access permissions, while extensions cannot.
Extensions have an easy-to-implement settings interface, while modules have to build their own settings screens.
Plugins are not necessarily free, but mostly, a plugin has no control panel component; it is triggered and usually affects EE via the output a template, and it doesn’t interact with any other part of EE.
You must have an ExpressionEngine license and have attained a forum rank of "Lab Assistant" (100 posts) to contribute notes to the User Guide