DEV Community

Cover image for Zermatt.dev: A Frontend Framework for Magento
Hervé Guétin
Hervé Guétin

Posted on • Edited on

Zermatt.dev: A Frontend Framework for Magento

The landscape of Magento (Adobe Commerce) frontend development has evolved significantly, yet it often remains stuck with legacy technologies like Knockout.js and RequireJS. Zermatt, a personal project that I am pleased to present, aims at simplifying frontend development by delivering an incremental, lightweight, component-driven approach fully integrated in the Magento framework.

👉 Zermatt.dev landing page
👉 Demo
👉 Documentation


The Challenges of Magento Frontend Development

Magento’s traditional frontend stack can feel cumbersome, especially with heavy reliance on Knockout.js and the complexities of integrating modern JavaScript libraries. Developers face several key challenges:

  1. Complexity in Customization: Overriding templates and creating custom JavaScript logic can lead to rigid structures that are difficult to maintain. Magento’s reliance on Knockout.js and RequireJS often results in cumbersome, outdated development practices.

  2. Performance Bottlenecks: The layered and interdependent frontend structure can slow down page rendering and increase load times.

  3. Limited Flexibility: Managing dependencies and updates across themes and modules is often prone to errors. Creating and managing reusable components is complex.

  4. Data Access: Sharing data between backend and frontend components requires complex workarounds, reducing flexibility.

  5. Steep Learning Curve: Understanding the intricacies of Magento’s frontend stack can be daunting, especially for those transitioning from modern JavaScript frameworks.

How Zermatt.dev can help

Zermatt.dev leverages Alpine.js, allowing developers to create reusable Javascript modules with minimal overhead. These modules can be easily managed through configuration, enabling rewriting features for flexibility in customization.

👉 More about the architecture


Incremental Adoption

Zermatt.dev supports gradual migration, allowing teams to replace Knockout.js and RequireJS at their own pace while maintaining existing functionality.


Modularity

Zermatt.dev’s architecture allows developers to define modular AlpineJS components that can be easily integrated, reused across templates and distributed. These modules can be hard or softly rewritten, enabling both complete overrides and incremental enhancements without affecting core logic.

👉 More about modules


Theme Inheritance

The framework supports Magento’s native theme fallback system, allowing for clean inheritance and overrides. Developers can easily create child themes that selectively override parent modules without duplicating logic.

👉 More about themes


Data Handling

With built-in support for backend data forwarding, Zermatt simplifies passing data from Magento's backend to the frontend, either through scoped properties or global variables. It also eliminates boilerplate code like json_encode and escapeJs.

👉 More about backend -> frontend


Forms

Zermatt.dev leverages Laravel Precognition to provide a form management feature with real-time server-side validation. It supports both synchronous and AJAX form submission.

👉 More about forms


Internationalization

Zermatt.dev integrates i18next with Magento’s i18n and currency system, ensuring seamless localization through its $t() and Money objects, which supports translation and interpolation.

👉 More about i18n

👉 More about money


Other features

Build process: Leveraging Magento’s CLI commands, Zermatt.dev seamlessly integrates with setup:static-content:deploy for efficient asset management in CI/CD pipelines.

Events: Zermatt comes with a powerful pub/sub implementation that allows all Javascript code to emit and react to one or several events. Synchronously or asynchronously.

Partials: Extract parts of templates into smaller, reusable pieces without touching XML layout files.

CLI: Zermatt has a light CLI for easy operations.


👉 Zermatt.dev landing page
👉 Demo
👉 Documentation


About the author

My 25 years of experience in digital as a merchant, consultant, expert and CTO have led me to listen to many clients to build optimized solutions.

I have been using Magento since 2008 on an everyday basis and could not help noticing the increasing gap between its frontend layer and the evolving standards of the industry.

After numerous frontend implementations on many large and small projects, I wished I could have a flexible tool that produces modern JS that is flawlessly discussing with the Magento stack.

Zermatt.dev is an attempt to do that.

Top comments (0)