www/apps/book/app/learn/fundamentals/plugins/page.mdx
export const metadata = {
title: ${pageNumber} Plugins,
}
In this chapter, you'll learn what a plugin is in Medusa.
<Note>Plugins are available starting from Medusa v2.3.0.
</Note>A plugin is a package of reusable Medusa customizations that you can install in any Medusa application. The supported customizations are Modules, API Routes, Workflows, Workflow Hooks, Links, Subscribers, Scheduled Jobs, and Admin Extensions.
Plugins allow you to reuse your Medusa customizations across multiple projects or share them with the community. They can be published to npm and installed in any Medusa project.
<Note title="Tip">Learn how to create a wishlist plugin in this guide.
</Note>A module is an isolated package related to a single domain or functionality, such as product reviews or integrating a Content Management System. A module can't access any resources in the Medusa application that are outside its codebase.
A plugin, on the other hand, can contain multiple Medusa customizations, including modules. Your plugin can define a module, then build flows around it.
For example, in a plugin, you can define a module that integrates a third-party service, then add a workflow that uses the module when a certain event occurs to sync data to that service.
<Note title="Use a plugin if" type="success">The next chapter explains how you can create and publish a plugin.