Mosaic - a technology for developing extensible apps
Features
π§ Plugins
Plugins can easily stack onto one another, such way modifying the same place of the application multiple times. It is recommended to use the plugin system to implement functionality reusable among several projects.
By using Mosaic plugins, you may make any part of your project extensible and modifiable either from within the application itself or from installed Mosaic modules.
π Use granular micro-frontend architecture
Make dependencies injected with plugins instead of importing them! This way, you keep ALL the logic related to the module WITHIN the module, even its use cases!
ποΈ Theming
Build your project by overriding an existing project's functionality! Have infinite amount of parent projects. Similar to straight up forking, but with actual core updating potential.
π€ Integrations with existing technologies
No manual configuration tinkering required, we got you covered π€
There are several ways on how to get Mosaic in your application - we support Next.js, create-react-app, and simple Webpack installation. Some other technologies are coming soon, stay tuned π
export class App extends PureComponent<{}, {}> {
renderContent() {
return <p>This is written in the parent theme in TS</p>;
}
render() {
return (
<div className="Application">
{ this.renderContent() }
</div>
);
}
}
export default App;
react-app/src/App.js
import ParentApp from 'Parent/App';
export class App extends ParentApp {
renderContent() {
return (
<>
<p>This is written in the child theme in JS</p>
{ super.renderContent() }
</>
);
}
}
export default App;
<div class="Application">
<p>This is written in the child theme in JS</p>
<p>This is written in the parent theme in TS</p>
</div>