Differences with previous platforms
Maho is built on the M1 platform, specifically:
- Magento 1 (2008 - 2020)
- OpenMage, fork of Magento 1 (2019 - present)
- Maho, fork of unreleased OpenMage v21 (2024 - present)
Differences between Maho and Magento 1 are documented in OpenMage's readme.
Differences between Maho and OpenMage

Project structure
The first task we developed was a complete overhaul of the store's project structure thanks to a new sets of autoloaders, removing the need for the original M1 composer plugin to copy (and duplicate) all the files from the core to the project's root directory.
This allows for a modern and lean project structure, like any other PHP-based project you can work on since quite some years.
In this picture you see a basic Maho project right after installation. Pretty clean right?
Whatever is in your local project overrides whatever is in composer-installed modules, which override Maho's core.
Built-in command line tool
With previous M1-based project you had some basic scripts in the shell/ directory but everybody was relying on MageRun for anything slightly more advanced.
To know more, check the complete documentation of Maho's CLI tool.
Complete control of the toolchain
We think that having core components of the toolchain that are unmaintained and/or owned by a third party is a problem for a quick and effective development of the whole platform.
This is why, at Maho, we decided to maintain internally both the CLI tool, the composer plugin and the PHPStan plugin.
Complete Zend Framework removal
One of the most significant modernization efforts in Maho is the complete elimination of all Zend Framework 1 dependencies. The entire codebase has been migrated to modern, actively maintained alternatives:
- Database layer: Migrated from
Zend_Dbto Doctrine DBAL 4.3 - HTTP client: Replaced
Zend_Httpwith Symfony HttpClient - Validation: Migrated from
Zend_Validateto Symfony Validator - Logging: Replaced
Zend_Logwith Monolog - JSON handling: Using native PHP JSON functions
- Date/Time: Migrated to native PHP DateTime with HTML5 date inputs
- PDF generation: Replaced
Zend_Pdfwith DomPDF
This isn't just about removing old code - it's about building on a foundation that's actively maintained, well-documented, and will continue to evolve. No more security vulnerabilities from abandoned 2000s-era libraries.
Modern frontend libraries
PrototypeJS has been completely removed from the codebase and replaced with modern vanilla JavaScript. The admin interface now uses:
- TipTap editor for rich text editing (CMS pages, product descriptions, blog posts)
- Native HTML5 date inputs with proper timezone handling
- intervention/image for modern image manipulation
- Modern CSS with CSS variables for theming
Legacy backend theme
The legacy theme for the backend (the one we all know from Magento1) is deprecated and not selectable anymore, every Maho project will have the modern theme for the backend.
Other differences
There are so many more differences that it's challenging to list them all, please refer to our release notes for a complete list release-by-release.