Mage-OS Light: Magento accessibile e snello, anche per chi parte da zero

Mage-OS Light: Magento accessibile e snello, anche per chi parte da zero

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.

Sono un web developer Freelance (programmatore web) in grado di offrire servizi di consulenza su diverse tipologie di progetti.
Dopo 6 anni di lavoro come dipendente in diverse agenzie di comunicazione, dal 2016 ho deciso di investire soldi e tempo nel mio sogno di diventare libero professionista.

Dal 2024 co-fondatore di threecommerce.it