Modular pattern with livewire

Hey all,

I am developing an application, in which the user will be given a whiteboard on which he can drag and drop items. These items will be livewire components . A component can be a simple static layout to something really complex and sophisticated and feature rich. Each livewire component will be inheriting a default parent component, some contracts etc. All components will have their own testings and configs as well.

What I want to do is make the application more organised. I want to divide the components and the related files in its own package or module and define a concrete way following which new components can be developed and integrated with the project. Because of this design, other developers might also be able to follow the guidelines, make their own components as a package or module or something like that and integrate with my app.

I have no idea what to do and where to start looking for such design pattern.

All sorts of thoughts and suggestions are welcomed. Thanks