Packagist is on Death Row
The PHP community is standing at a cliff edge, and most developers are still looking at their feet. We are witnessing the end of an era. The age of the monolithic package manager is over.
Packagist is on Death Row. The sentence has been passed, the executioner is already in the room, and his name is Artificial Intelligence.
The Indictment: A Legacy of Bloat and Risk
Before I continue, let me be clear: This is not a personal attack. The architects of Packagist and Composer are among the most capable engineers in our industry. They built a bridge that allowed PHP to cross into the modern era.
But bridges are meant to be crossed, not lived upon. The system we’ve relied on for over a decade has become a breeding ground for three terminal conditions:
-
1. The Security Epidemic
If you think Packagist is secure, you haven’t been paying attention. Just last month, we saw fake Laravel packages deploying Remote Access Trojans (RATs) across Windows, macOS, and Linux. This isn’t a one-off "glitch." It is a structural failure. When you pull in a package, you aren't just inviting one developer into your codebase; you are inviting every single one of their dependencies into your "house" without a background check.
-
2. The Cult of Indirection
Modern package management promises convenience but delivers complexity. A single
composer requirecan silently introduce dozens of sub-packages. We have stopped working with code and started working with layers of abstraction. We have lost the connection between what we write and what actually executes. -
3. Technical Serfdom
We have become "Package Assemblers" rather than "Software Architects." We tolerate hundreds of megabytes of
/vendorfolders because we’ve been told it’s the "best practice." We’ve traded our sovereignty for a false sense of speed.
The Executioner: AI and the Death of the "Package"
For years, the value proposition of Packagist was simple: Why write it yourself when someone else already has? But the "packages" we grab are monsters. For example, to get a single AWS CloudFront integration, you are forced to download code for EC2, S3, Lambda, and 300 other services you will never use.
That trade-off died the moment LLMs reached maturity.
With today’s AI, I no longer need to download a "one-size-fits-all" SDK. I can feed a model an API specification and say: "Write me a lean, high-performance Trongate module that handles CloudFront uploads and nothing else." Job done.
I've already been testing this approach, and the results have been staggering. It turns out that some of the most sophisticated packages available via Packagist can be rewritten in just an hour or two. My most recent module is a tool that allows users to login or register via platforms like Google/Gmail. I won't name the popular "package" that traditionally handles this because I don't want to embarrass anyone. What I can tell you is this: the Trongate version is roughly one-hundredth of the file size (yes, really!), it has zero dependencies, and it delivers the kind of blistering benchmarks that have become the Trongate trademark.
The AI generates Just-in-Time Code: purpose-built, transparent, and with zero dependencies. Why would a developer download someone else’s technical debt when they can generate a fresh, optimized solution in seconds? Packagist is a library of frozen, static artifacts. AI is a living, breathing forge.
The New Order
The industry is shifting. We are moving away from centralized, bloated registries and toward a Module-based architecture.
The upcoming Trongate Module Market will be a rejection of the Packagist philosophy. It’s built on a simple premise: Code should be readable, portable, and minimal. If you can’t see the code, understand the code, and move the code without bringing a 200MB baggage train with you, then the code is broken.
Personally speaking, I have stopped using code from Packagist. I have reached a point where I consider the "Package" model to be fundamentally flawed architecture. I think it's time for PHP developers to start preparing for a reality where the "Package" is a relic of a pre-AI era.
The Five Stages of the Packagist Detox
-
Phase 1. The Blissful Default
In this phase, you don’t think about your dependencies at all. You
composer requirewithout a second thought, trusting that "the community" has vetted the code. You equate popularity with security and bloat with "feature-richness." -
Phase 2. The Cracks in the Mirror
This is where the questioning begins. You see a headline about a supply-chain attack or a malicious package, and for the first time, you actually look inside your
/vendorfolder. You realize you’ve imported 50,000 lines of code just to solve a problem that required 50. You start to ask: "Is this really the only way?" -
Phase 3. Grudgeful Tolerance
You’ve seen the mess, but you feel trapped. You tell yourself that this is "industry standard" and that everyone else is doing it, so you must be wrong to question it. You tolerate the bloat and the security risks because the alternative - writing it yourself - feels like a mountain you aren't ready to climb.
-
Phase 4. The Creative Spark
The "mountain" suddenly looks smaller. Maybe it’s an AI tool that helps you write a custom function in seconds, or maybe you’ve realized that 90% of the package you're using is baggage you don't need. You start to prototype your own lean alternatives. You suddenly realize that you’re able to produce better code than the packages you've been renting.
-
Phase 5. Total Autonomy
This is the final phase - the phase I am in today. The
composer.jsonfile is empty, or better yet, it doesn't exist. You no longer use Packagist in your applications. You own your stack. You understand every line of code in your project. The weight is gone, and the speed is incredible.
If you are still in Phase 3, don't worry. The transition is coming. Once you realize that the "industry norm" is actually broken, you can't un-see it. You’re already on your way to Phase 5.
DC