Negli ultimi mesi, insieme a ThreeCommerce, ho iniziato a lavorare a un progetto chiamato Mage-OS Light.
Cos’è Mage-OS Light?
Mage-OS Light è una versione alleggerita di Mage-OS che punta a ridurre il carico e la complessità della piattaforma rimuovendo moduli non essenziali, in particolare quelli che Mage-OS eredita direttamente da Magento e che non sempre sono indispensabili in fase di startup.
L’obiettivo è rendere Magento (o meglio Mage-OS) più accessibile anche a chi ha budget limitati, senza rinunciare alla possibilità di crescere in futuro. Si parte leggeri, si scala quando serve.
Perché nasce questo progetto?
- Alcuni clienti vogliono partire con Magento ma non hanno l’infrastruttura o il budget per gestire una piattaforma completa.
- La maggior parte delle installazioni Magento attiva centinaia di moduli, molti dei quali inutilizzati.
- I requisiti hardware aumentano inutilmente.
- Anche su progetti enterprise, eliminare componenti inutili porta benefici diretti in performance, manutenibilità e tempi di deploy.
Cosa viene rimosso?
Nel composer.json del progetto, stiamo usando “replace” per disabilitare l’installazione automatica di numerosi moduli. In particolare:
- Tutto il blocco MSI (Multi Source Inventory), non necessario su store semplici o mono-magazzino.
- Moduli GraphQL non indispensabili, se non si usa headless.
- Moduli legati a servizi esterni come New Relic, FedEx, Elasticsearch/OpenSearch, ecc.
- Altri moduli funzionali come GiftCard, Staging, Visual Merchandiser, Page Builder Analytics, e molto altro.
🔧 Ad oggi il composer.json contiene oltre 150 moduli disabilitati. Puoi vedere l’elenco completo qui:
"replace": {
"mage-os/module-inventory": "*",
"mage-os/module-inventory-admin-ui": "*",
"mage-os/module-inventory-advanced-checkout": "*",
"mage-os/module-inventory-api": "*",
"mage-os/module-inventory-bundle-import-export": "*",
"mage-os/module-inventory-bundle-product": "*",
"mage-os/module-inventory-bundle-product-admin-ui": "*",
"mage-os/module-inventory-bundle-product-indexer": "*",
"mage-os/module-inventory-cache": "*",
"mage-os/module-inventory-catalog": "*",
"mage-os/module-inventory-catalog-admin-ui": "*",
"mage-os/module-inventory-catalog-api": "*",
"mage-os/module-inventory-catalog-frontend-ui": "*",
"mage-os/module-inventory-catalog-search": "*",
"mage-os/module-inventory-catalog-search-bundle-product": "*",
"mage-os/module-inventory-catalog-search-configurable-product": "*",
"mage-os/module-inventory-configurable-product": "*",
"mage-os/module-inventory-configurable-product-admin-ui": "*",
"mage-os/module-inventory-configurable-product-frontend-ui": "*",
"mage-os/module-inventory-configurable-product-indexer": "*",
"mage-os/module-inventory-configuration": "*",
"mage-os/module-inventory-configuration-api": "*",
"mage-os/module-inventory-distance-based-source-selection": "*",
"mage-os/module-inventory-distance-based-source-selection-admin-ui": "*",
"mage-os/module-inventory-distance-based-source-selection-api": "*",
"mage-os/module-inventory-elasticsearch": "*",
"mage-os/module-inventory-export-stock": "*",
"mage-os/module-inventory-export-stock-api": "*",
"mage-os/module-inventory-graph-ql": "*",
"mage-os/module-inventory-grouped-product": "*",
"mage-os/module-inventory-grouped-product-admin-ui": "*",
"mage-os/module-inventory-grouped-product-indexer": "*",
"mage-os/module-inventory-import-export": "*",
"mage-os/module-inventory-in-store-pickup": "*",
"mage-os/module-inventory-in-store-pickup-admin-ui": "*",
"mage-os/module-inventory-in-store-pickup-api": "*",
"mage-os/module-inventory-in-store-pickup-frontend": "*",
"mage-os/module-inventory-in-store-pickup-graph-ql": "*",
"mage-os/module-inventory-in-store-pickup-multishipping": "*",
"mage-os/module-inventory-in-store-pickup-quote": "*",
"mage-os/module-inventory-in-store-pickup-quote-graph-ql": "*",
"mage-os/module-inventory-in-store-pickup-sales": "*",
"mage-os/module-inventory-in-store-pickup-sales-admin-ui": "*",
"mage-os/module-inventory-in-store-pickup-sales-api": "*",
"mage-os/module-inventory-in-store-pickup-shipping": "*",
"mage-os/module-inventory-in-store-pickup-shipping-admin-ui": "*",
"mage-os/module-inventory-in-store-pickup-shipping-api": "*",
"mage-os/module-inventory-in-store-pickup-webapi-extension": "*",
"mage-os/module-inventory-indexer": "*",
"mage-os/module-inventory-low-quantity-notification": "*",
"mage-os/module-inventory-low-quantity-notification-admin-ui": "*",
"mage-os/module-inventory-low-quantity-notification-api": "*",
"mage-os/module-inventory-multi-dimensional-indexer-api": "*",
"mage-os/module-inventory-product-alert": "*",
"mage-os/module-inventory-quote-graph-ql": "*",
"mage-os/module-inventory-requisition-list": "*",
"mage-os/module-inventory-reservation-cli": "*",
"mage-os/module-inventory-reservations": "*",
"mage-os/module-inventory-reservations-api": "*",
"mage-os/module-inventory-sales": "*",
"mage-os/module-inventory-sales-admin-ui": "*",
"mage-os/module-inventory-sales-api": "*",
"mage-os/module-inventory-sales-async-order": "*",
"mage-os/module-inventory-sales-frontend-ui": "*",
"mage-os/module-inventory-setup-fixture-generator": "*",
"mage-os/module-inventory-shipping": "*",
"mage-os/module-inventory-shipping-admin-ui": "*",
"mage-os/module-inventory-source-deduction-api": "*",
"mage-os/module-inventory-source-selection": "*",
"mage-os/module-inventory-source-selection-api": "*",
"mage-os/module-inventory-swatches-frontend-ui": "*",
"mage-os/module-inventory-visual-merchandiser": "*",
"mage-os/module-inventory-wishlist": "*",
"mage-os/module-inventory-catalog-rule": "*",
"mage-os/module-authorizenet-graph-ql": "*",
"mage-os/module-braintree-graph-ql": "*",
"mage-os/module-bundle-graph-ql": "*",
"mage-os/module-catalog-analytics": "*",
"mage-os/module-catalog-cms-graph-ql": "*",
"mage-os/module-catalog-customer-graph-ql": "*",
"mage-os/module-catalog-graph-ql": "*",
"mage-os/module-catalog-inventory-graph-ql": "*",
"mage-os/module-catalog-page-builder-analytics": "*",
"mage-os/module-catalog-permissions-graph-ql": "*",
"mage-os/module-catalog-rule-graph-ql": "*",
"mage-os/module-catalog-staging-graph-ql": "*",
"mage-os/module-catalog-url-rewrite-graph-ql": "*",
"mage-os/module-checkout-agreements-graph-ql": "*",
"mage-os/module-cms-graph-ql": "*",
"mage-os/module-cms-url-rewrite-graph-ql": "*",
"mage-os/module-compare-list-graph-ql": "*",
"mage-os/module-configurable-product-graph-ql": "*",
"mage-os/module-customer-analytics": "*",
"mage-os/module-customer-graph-ql": "*",
"mage-os/module-directory-graph-ql": "*",
"mage-os/module-downloadable-graph-ql": "*",
"mage-os/module-eav-graph-ql": "*",
"mage-os/module-gift-card-account-graph-ql": "*",
"mage-os/module-gift-card-graph-ql": "*",
"mage-os/module-gift-message-graph-ql": "*",
"mage-os/module-gift-wrapping-graph-ql": "*",
"mage-os/module-graph-ql": "*",
"mage-os/module-graph-ql-cache": "*",
"mage-os/module-grouped-product-graph-ql": "*",
"mage-os/module-login-as-customer-graph-ql": "*",
"mage-os/module-newsletter-graph-ql": "*",
"mage-os/module-payment-graph-ql": "*",
"mage-os/module-paypal-graph-ql": "*",
"mage-os/module-quote-graph-ql": "*",
"mage-os/module-related-product-graph-ql": "*",
"mage-os/module-review-graph-ql": "*",
"mage-os/module-sales-graph-ql": "*",
"mage-os/module-send-friend-graph-ql": "*",
"mage-os/module-staging-graph-ql": "*",
"mage-os/module-swatches-graph-ql": "*",
"mage-os/module-target-rule-graph-ql": "*",
"mage-os/module-tax-graph-ql": "*",
"mage-os/module-theme-graph-ql": "*",
"mage-os/module-url-rewrite-graph-ql": "*",
"mage-os/module-vault-graph-ql": "*",
"mage-os/module-versions-cms-url-rewrite-graph-ql": "*",
"mage-os/module-weee-graph-ql": "*",
"mage-os/module-wishlist-graph-ql": "*",
"mage-os/module-dhl": "*",
"mage-os/module-elasticsearch": "*",
"mage-os/module-elasticsearch-7": "*",
"mage-os/module-elasticsearch-8": "*",
"elasticsearch/elasticsearch": "*",
"mage-os/module-open-search": "*",
"opensearch-project/opensearch-php": "*",
"mage-os/module-new-relic-reporting": "*",
"mage-os/module-application-performance-monitor-new-relic": "*",
"mage-os/module-contact-graph-ql": "*",
"mage-os/module-currency-symbol": "*",
"mage-os/module-integration-graph-ql": "*",
"mage-os/module-customer-downloadable-graph-ql": "*",
"mage-os/module-graph-ql-new-relic": "*",
"mage-os/module-graph-ql-resolver-cache": "*",
"mage-os/module-order-cancellation-graph-ql": "*",
"mage-os/module-store-graph-ql": "*",
"mage-os/module-sales-rule-graph-ql": "*",
"mage-os/module-fedex": "*"
}
A chi può servire?
- Startup e PMI che vogliono partire con Magento senza dover investire in infrastruttura enterprise da subito.
- Agenzie e sviluppatori che vogliono un punto di partenza “pulito” per custom build.
- Progetti enterprise che vogliono una base più snella da ottimizzare in base alle reali esigenze.
Prossimi passi
Il progetto è in sviluppo ma stiamo già testando in ambienti reali.
Se vuoi contribuire o sei curioso di provarlo, scrivimi o seguimi nei prossimi aggiornamenti sul blog e su GitHub.