--- title: "Ecosystems in the era of AI" author: "@chris" author_url: https://elements.dev/u/@chris published: 2026-11-03T00:12:17.674Z url: https://elements.dev/feed/ecosystems-in-the-era-of-ai-9mplopyy kind: post format: article --- # Ecosystems in the era of AI by [@chris](https://elements.dev/u/@chris) ยท 2026-11-03 ## Description Packages help when they are designed to work together and their abstractions stay out of the agent's way. That was good design for people too. Next.js built up abstractions over the years that violate it, the training data holds several versions of each, and the agent mixes them. Elements comes with the UI and the plumbing an app needs, built to one design, and installs any npm package with one command. Ask Google or ChatGPT what to build a web app with and the answer is Next.js, and one of the first reasons given is the size of its ecosystem. That was a good reason while people wrote most of the code. Now you and your agent write it together, and most of the typing is the agent's. The ecosystem question is still relevant, but the answer has changed. ## Ecosystem size measured search cost Ecosystem size stood for "someone has already solved my problem and I can find their solution". A large ecosystem meant a Stack Overflow answer for the error, a tutorial for the feature, a package for the widget, and a hiring pool that already knew the conventions. Each of those saved a developer time, and for twenty years the developer was the bottleneck. Picking a stack by ecosystem size was picking by how fast a person could find an answer. Models learned from their training data that this definition of an ecosystem is what matters when choosing a framework, and they still recommend by it. The irony is that an agent does not search the way a person did, so the thing the model is selecting for matters little to the agent doing the work. ## What an agent needs from an ecosystem An agent still uses parts. It does not need a community of gatekeepers deciding which parts and conventions are allowed. It needs parts it can assemble quickly: they work, they are documented, and their abstractions do not get in the way of the agent making progress. Writing text is cheap for an agent. An abstraction earns its place only when it prevents token churn, the cycle of writing, failing and rewriting, or when it makes a result repeatable, secure or consistent in a way the agent would otherwise have to get right every time. An abstraction the agent gets wrong causes churn instead of preventing it. Give an agent parts that pass that test and it moves mountains. The largest and most stable body of code in software is the standards. HTML has been HTML for thirty years. CSS, SQL and TypeScript have grown, but a `select` statement or a `