Mautic Marketplace

Objective

To provide a Mautic Marketplace within the application which allows the easy installation and maintenance of third-party plugins for Mautic

Due date

May 16, 2021 

Key outcomes

  • An in-app Mautic Marketplace which allows the installation and management of third party plugins

  • Decoupling of existing plugins from Mautic Core

Status

IN PROGRESS

Get involved

Problem Statement

  1. It is difficult to manage plugins and dependencies within Mautic

    Currently there is no easy way to manage plugins within Mautic, or their dependencies. This makes it quite difficult for the end-user to install new plugins, and is also restricting the growth of our ecosystem as the process is so complex.

  2. Changes to plugins are coupled to Mautic releases

    We are restricted in making changes or updates to plugins which are shipped with Mautic because they have to fit within the release cycle of Mautic itself. An issue might only affect a very small subset of Mautic users who actually use that plugin, but we have to ship the fix to every user of Mautic rather than every user of the plugin.

  3. Mautic Core is bloated by plugins that are not widely used

    Mautic itself is quite bloated and complex due to the number of plugins that we ship with the core product, whereas if we had the architecture to support a decoupled approach to plugins we could streamline the product significantly. This would also mean that we could easily empower smaller teams (e.g. Tiger Teams) to support specific plugins and make updates much more quickly.

Resources

Read more in John Linhart’s proposal about the Mautic Marketplace here.

WIP PR: https://github.com/mautic/mautic/pull/8257

v1 ‘read only’ PR: https://github.com/mautic/mautic/pull/9650

Forum thread: https://forum.mautic.org/t/mautic-marketplace/12108

Scope

Must have:

  • List all packagist packages for Mautic (web and command line?)

  • Allow the install of packages

  • Allow the removal of packages

  • Allow the searching of packages

  • Checks for malicious code/activity and maybe bad practices?

  • Core plugins broken out into individual repositories and included as plugins

Nice to have:

  • Allow/deny list of packages

  • A way to raise the profile of sponsors (financial)

  • A way to raise the profile of contributors

  • Some kind of validation / certified status

  • Report this plugin feature (sends an issue to a private Github repo maybe for the team to review)

Not in scope:

  •  

  •  

Proposed phases

  1. Move all existing core plugins to independent repositories

  2. Provide alpha with browsing capabilities - we need some UI/UX experts to review and give advice here! Could be released now.

  3. Once the Composer work is done and Composer 2 support is in place, release a beta for people to review & test

  4. Will ship as stable with Mautic 4.0 due to BC breaks & requirement for Composer 2 support (at this point we may remove certain plugins from shipping with core and make them optional installs)

Blockers

  • Mautic needs to be installable as a project using Composer

  • This will not work with Shared Hosting - may need to get some community input on this, maybe from Mautic 4.0 onwards saying we do not support Mautic being used on shared hosting?

  • Cannot move to Composer 2 until we get to Mautic 4 (due to dependency blocking which would be a BC break) and Composer 1 is too slow for plugins to be managed via the UI

    • Composer plugin may need to be reviewed to make sure it will support Composer 2

Initiative Coordinator/s

Contributors

Stakeholder/s

Initiative Coordinator/s

Contributors

Stakeholder/s

Position vacant

@Jan Linhart

Product Team (@Ruth Cheesley @Dennis Ameling @Norman Pracht)

Timeline

Milestones and deadlines

Milestone

Owner

Deadline

Status

Milestone

Owner

Deadline

Status

 

 

NOT STARTED