The State of the Ecosystem — and Why Good Modules Stay Invisible
7,769 active repositories. Most of them have never been starred, tagged or listed anywhere.
The open-source Magento 2 extension landscape is the set of public modules, themes, components and related projects that extend Magento Open Source, Adobe Commerce and Mage-OS, hosted on GitHub and distributed mostly through Packagist. In October 2026 it is much larger than any single search, registry or curated list shows: a harvest that merged all three sources found 7,769 public repositories and packages with a push or a release in the previous two years.
This guide is the narrative behind that dataset. It covers how big the ecosystem actually is, why most of it is invisible to the teams that would use it, what a curated list does and does not catch, and the specific, unglamorous steps that make a module findable. Every number below comes from the same harvest. The full catalog is browsable, filterable and exportable at the Magento 2 Extension Atlas.
Bigger than it looks from any one vantage point. The harvest behind this guide merged three sources, each with a different blind spot, and counted 7,769 public Magento 2 repositories and packages active in the last two years. "Active" means a git push or a Packagist release between 2024-10-11 and 2026-10-11; forks, archived and private repositories were excluded.
| Source | What it sees |
|---|---|
| GitHub search | About 4,100 repositories for a single magento2 search in the name, description or topics. Roughly half of the active ecosystem. |
| Packagist | 11,810 packages of type magento2-module, -theme, -component or -library in total; 3,733 of them released something since 2024-10-11. |
| Packagist only | About 1,350 active packages never surface in GitHub search at all, because their repositories do not say "magento" anywhere GitHub indexes. |
| Curated lists | Around 100 modules in total across every curated list that was checked. |
The practical consequence: a team that evaluates extensions with a single magento2 search on GitHub is choosing from roughly half of what exists. A team that only reads a curated list is choosing from about two percent of it. Neither half is systematically better than the other; the split is driven by metadata, not by code quality.
Three layers of metadata decide whether a module is ever seen. Most of the ecosystem is missing at least one of them.
Stars. Of roughly 6,100 modules in the catalog, about 3,570 have zero stars and about 5,100 have fewer than five. Stars are often read as a quality signal. In this ecosystem they are mostly an exposure signal: a module gets stars after it is discovered, and discovery depends on the two layers below. A zero-star module is not evidence of a bad module; it is evidence that nobody was pointed at it.
Packagist. About 3,630 entries are not on Packagist at all. A module that cannot be installed with a plain composer require from the public registry needs a VCS repository entry or a manual copy. Most teams evaluating options will not take that step for something they have never heard of, so these modules are rarely trialled and rarely starred.
Topics. Roughly three quarters of the entries carry no GitHub topics. Only about 1,620 carry the magento2 or magento-2 topic, and those two topics are what most discovery tooling queries. A repository without them is outside the loop that feeds every list, bot and dashboard built on top of GitHub.
Put together, the mechanism is circular. Discovery tools query topics. Search results rank by stars. Stars come from being discovered. A module that starts without topics, a description or a Packagist package has no way into the loop, regardless of how well it is written.
Very little, and the gap is structural rather than careless. Only around 100 modules appear in any curated list that was checked, about two percent of the active catalog.
Curated lists are small by design. Most are fed by a narrow input, such as a few GitHub topics or a handful of known organisations, and then filtered by quality gates: a minimum number of stars, a license, recent activity. Those gates are sensible. The problem is the funnel in front of them:
None of this makes curated lists wrong to use. It makes each one a small sample, not a map. The atlas marks every entry that appears in a curated list so you can see what the sample looks like against the whole.
Stop treating star count as the first filter. It removes most of the ecosystem before any real evaluation starts, and it keeps popular-but-abandoned modules at the top. Replace it with signals that measure maintenance and fit:
The atlas is built for this kind of evaluation: sort by "Recently active", leave the minimum stars at zero, filter by kind, and search by the function you need rather than by a module name you already know. Then apply the code review checklist to the shortlist, because none of these signals replaces reading the plugin and observer declarations.
The fix is not marketing. It is a short list of metadata changes, each of which opens one discovery channel that is currently closed. In order of effort:
magento2, magento2-module and adobe-commerce, plus topics for what the module does (checkout, shipping, payment, hyva, b2b, erp). This is the single change that puts the repository in front of every bot and list that exists today."type": "magento2-module" in composer.json. This is what makes the module installable with one command, and it is how the roughly 1,350 "Packagist only" modules get found even when GitHub search misses them.1.0.0 tag tells evaluators the author considers it usable, and it gives composer a version to pin.A maintainer who does all seven moves from the invisible majority into the small set that search, package managers and lists all agree on. Check the result in the atlas after the next refresh: the entry should carry the packagist tag, the topics, and eventually the curated-list tag.
The Magento 2 Extension Atlas merges three harvests by repository. GitHub search ran 14 queries for magento2, magento-2, "magento 2", magento and mage-os in names, descriptions and topics, plus the topics magento2-module, magento2-extension, adobe-commerce, hyva and mage-os, each split into date windows to stay under GitHub's 1,000-result cap. Packagist contributed all 11,810 packages of the four Magento 2 types with their last release dates. Public curated lists of Magento 2 extensions contributed their links, which are used to find candidates and to set the curated-list tag; the lists themselves are not extensions and are not entries. Stars, topics and last push come from the GitHub API.
Two reading rules. First, "kind" is the Packagist type where one exists and a heuristic from the name and topics otherwise, so a few entries are mislabelled. Second, the catalog includes Magendoo's own repositories under github.com/magendooro; they were harvested and ranked like every other entry and get no special placement.
The data is refreshed periodically and every refresh replaces the whole set. Maintainers who find an entry wrong, or who would rather not be listed, can write to [email protected].
The Magento 2 Extension Atlas lists all 7,769 active entries with filters for kind, Packagist presence, curated-list presence and stars, and lets you copy any filtered view as CSV.
Open the Extension Atlas Magendoo's Open-Source Work