This repository is a collection of powerful and flexible plugins designed to extend the capabilities of your MedusaJS commerce platform. Each plugin is crafted to integrate seamlessly with MedusaJS, providing enhanced functionalities for various aspects of your e-commerce application.
This monorepo hosts a suite of MedusaJS plugins, each addressing specific needs within the e-commerce ecosystem. Whether you're looking to implement advanced authentication methods, robust notification systems, powerful search capabilities, or flexible file storage solutions, this collection offers well-documented and easy-to-integrate options.
This project is structured as a monorepo using Yarn workspaces. Below is a list of the available packages, each providing unique features:
@vymalo/medusa-apprise
: Enables multichannel notifications (email, SMS, etc.) through Apprise, offering flexible configuration for various notification services.@vymalo/medusa-argon2
: Enhances password security by integrating the Argon2 hashing algorithm, the winner of the Password Hashing Competition.@vymalo/medusa-keycloak
: Provides seamless integration with Keycloak for robust identity and access management, supporting OAuth 2.0 / OpenID Connect.@vymalo/medusa-mail
: Offers advanced email templating capabilities using Nodemailer and email-templates, with support for previews, i18n, and various transports.@vymalo/medusa-meilisearch
: Integrates Meilisearch for lightning-fast, typo-tolerant search experiences with real-time updates and advanced filtering.@vymalo/medusa-minio
: Implements file storage using MinIO, a self-hosted, S3-compatible object storage solution, supporting public/private buckets and CDN integration.@vymalo/ui-preset
: A Tailwind CSS preset designed for Vymalo projects, providing a consistent styling foundation.@vymalo/medusa-webauthn
: Enables passwordless authentication using the WebAuthn standard, supporting hardware and software security keys for enhanced security.
- Node.js (Version specified in individual package
package.json
files, generally >=20) - Yarn (Version 4.x, as specified in
packages/package.json
) - A MedusaJS project.
-
Clone the repository:
git clone https://github.com/vymalo/medusajs.git cd medusajs
-
Install dependencies: This project uses Yarn workspaces. Install all dependencies from the root directory:
yarn install
Each plugin is designed to be integrated into your MedusaJS application. For detailed installation, configuration, and usage instructions for a specific plugin, please refer to its individual README.md
file located within its package directory (e.g., packages/vymalo-apprise/README.md
).
General Steps:
-
Install the desired package into your MedusaJS project:
yarn add @vymalo/plugin-name # Replace plugin-name with the actual package name
Or, if you are developing locally and want to use your cloned version, you can use
yalc
or Yarn's link functionality. -
Configure the plugin in your
medusa-config.js
or relevant configuration files as per the plugin's specific documentation.
Example: To use the @vymalo/medusa-keycloak
plugin, you would typically add it to the modules
section of your MedusaJS configuration, as detailed in its README.
If you are new to MedusaJS or these plugins:
- Explore MedusaJS: Familiarize yourself with the MedusaJS documentation.
- Identify Your Needs: Determine which plugin(s) from this collection can help you achieve your desired functionality.
- Read Plugin Documentation: Carefully read the
README.md
for each plugin you intend to use. It contains specific installation, configuration, and usage examples. - Integrate and Test: Add the plugin to your MedusaJS project, configure it, and test its functionality thoroughly.
We welcome contributions to enhance these plugins!
- Ensure you have followed the Installation (Development & Contribution) steps above.
- Navigate to the specific package you want to work on, e.g.,
cd packages/vymalo-keycloak
. - Each package has its own scripts defined in its
package.json
(e.g.,packages/vymalo-keycloak/package.json
). These typically include:format
: To format the code (e.g., using Biome).build
: To build the package (e.g., usingtsc
).dev
: For local development, if applicable.
-
Fork the repository.
-
Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
orbugfix/issue-number
. -
Make your changes: Implement your feature or fix the bug. Ensure you adhere to the coding style and conventions used in the project.
-
Format your code: Run the formatting script from the root or the specific package directory.
yarn biome check --write . # From the root, or specific path
-
Build the package(s) you've modified to ensure there are no build errors.
-
Test your changes thoroughly.
-
Commit your changes with a clear and descriptive commit message.
-
Push your branch to your forked repository.
-
Create a Pull Request (PR) against the
main
branch of the original repository. Provide a detailed description of your changes in the PR.
- Follow the existing code style.
- Ensure your code is well-documented, especially for new functionalities or complex logic.
- Write clear and concise commit messages.
- Update relevant documentation (READMEs, comments) if your changes affect usage or configuration.
This project is licensed under the MIT License. See the LICENSE
file for more details.
For issues, questions, or feature requests related to a specific plugin, please open an issue in this GitHub repository, making sure to specify which plugin your issue pertains to.