Wide as an ocean, deep as a puddle
Software used to disappoint me the same way every time: it did a little bit of everything and not much of anything. With Claude, I can keep drilling into one feature. Who knows how deep it goes?!
For most of my life, software has disappointed me in the same way. It was wide, but it had the depth of a puddle.
I know you know what I’m talking about. The feature list is enormous. It does photos, and calendars, and sharing, and sync, and a dozen other things. Then you actually try to use one of those things for something real, and within about ten minutes you hit the bottom. The export doesn’t include the field you need. The filter can’t combine two conditions. The setting you want exists, but only for admins, only on the desktop app, only in the version you didn’t buy. Certain Mac App Store apps are notorious for this. They’re attractive, they look great in the screenshots, and the moment you dig into something for more than five minutes, you hit a limitation.
I’d always find the shortcomings, sometimes within minutes.
Why everything was shallow
I don’t blame the people who built it. I’ve been one of them for a long time. Every feature competes for the same finite pile of engineering time. You build the version that covers most people, you ship it, and you move on. If you’re lucky, you don’t get bug reports about it. But the one thing you don’t do is revisit it. Going back to make the export handle the weird case, or the filter handle the second condition, is real work that very few people will ever notice. So it mostly doesn’t happen. Breadth sells; depth is a cost center. I’ve made that call myself. Years ago, we got a really interesting mockup for extending layouts in Concrete CMS to handle responsive designs. It was powerful and completely impractical for a team our size, so we built layouts that covered about 80% of the use cases and moved on.
Drilling down
With LLM-assisted development, we have a real opportunity here for change. As a developer, I can pick one feature and keep drilling into it until it has significant depth. When I notice that something doesn’t work quite the way I want, I don’t add it to a someday list. I start prompting immediately, even if the implementation is unique and esoteric.
The editor I’m writing this in is a decent example. Studio started with “let me add a hero image to a post.” Then it could browse Unsplash, so I don’t have to leave the editor to find one. Then it filled in the photographer credit automatically, with the tracking parameters Unsplash’s terms ask for. Then it pre-filled the alt text, and converted every image to the same size and format so the site stays fast. None of those are big features. Each one is just the next thing I would have run into, handled before I ran into it. That’s what depth feels like from the inside: the absence of disappointment.
The thing that actually made me sit up and take notice was what I added next: support for comments in a draft, then replies to those comments, then AI edits based on the threads. This sentence started out as one of those comments.

This is the part people miss when they talk about AI writing code. The headline is usually all about speed, or that a non-programmer can build an app. For me, the bigger change is that I get to stop at the bottom of the feature instead of the bottom of my budget, free time, or sanity.
The catch
Depth isn’t free just because it’s cheap to type.
Every layer you add is a layer you own. More cases means more behavior to understand, more to test, and more that can break in a way you didn’t anticipate. As I wrote in From vibe to live, the hard part was never generating the code. It’s deciding what you’re willing to be on the hook for. After all, an ocean is also a great place to drown.
Depth has to be in service of the right thing. A tool that goes infinitely deep on a feature nobody needs runs the risk of making an entire app inscrutable.
What I’m noticing is that the software I like best now is narrow and deep: a handful of things, each done all the way down. That used to be a luxury only the biggest companies could afford, and they mostly spent it on breadth anyway.
Now it’s available to one person with a specific need and some patience. Software is bound to have shortcomings. The difference is that now, when I find one, I can fix it before lunch.
