Building new features is cheap; excelling at a few is hard
There’s a trend I’ve been observing lately. Heavily vibe-coded projects tend to favor adding new features over improving existing ones. Some examples are OpenCode and Cmux. Don’t get me wrong, both projects are incredibly popular, both in terms of GitHub stars and adoption, but that sense of a bloated product is noticeable. With AI, it’s easier than ever to keep adding more and more features. If you need something for a specific use case, sure, you just ask Claude to build it, ship it, and merge it right away. Why look back when you can keep pushing forward? OpenCode has everything: LSP, MCP, multi-session support, plan mode, multi-agent… the list goes on. Cmux, a popular terminal built on top of Ghostty, not only has vertical tabs but even includes a browser.
On the opposite side, we have opinionated projects—focused on doing a few things well and reluctant to add more features. Ghostty, the Pi coding agent, and Helix are good examples. Their products feel much more polished, and it’s easy to see why. Their focus isn’t on iterating faster and adding shiny features; it’s on improving the existing code and providing the best experience possible—even if that means rewriting everything from scratch
Call me a purist, but I’d take a well-crafted, meticulous, and opinionated tool over a jack-of-all-trades any day. I prefer composability over an all-in-one solution. I’d rather have a toolkit of well-made tools.
Sadly, this is a trend that’s being adopted everywhere. The mix of FOMO and the rush to build things is almost impossible to push back against. We’re entering the era of the disposable software. But, as with everything in life, good things take time to grow