❌

Reading view

Why Aren’t AI Labs’ Apps Better?

Ben Davis (co-host of one of my favorite new podcasts this year, Nerd Snipe) has a fascinating take on a question I’ve seen many in the Apple community ponder as well: if these frontier models are so good, why do most AI apps from the big labs still kind of suck?

Davis wrote about this in relation to the ChatGPT/Codex desktop app, which has turned into a bit of a kitchen-sink design phenomenon with all kinds of features crammed into a UI that has two left sidebars, multiple modalities, and all sorts of disjointed menus.

To me the most interesting thing here is the implied question of “if the Codex team has unlimited tokens on really powerful unreleased models, why is the product getting worse?”

The lazy answer is “it’s just vibe coded slop, real artisanal code wouldn’t be like this”. Anyone who still says this is a moron and you can ignore them.

“Vibe coding” is not the problem. Frankly, these models are better at writing code than pretty much anyone at this point. You tell the model to make something and it’ll make that thing quite well. And also to be clear, Jira was horrid before LLMs existed. Good and bad products have always existed, and I actually think you can make infinitely better products now when using the agents properly (see T3 Code and Grok Bot).

I’ve been reviewing apps for over 17 years. Without a doubt, the most basic “vibe-coded” app created with Opus 5.5 today is infinitely more stable and nicer than any first app from an amateur developer in 2009. So if we agree that these models can write good code now, why is it that so many apps are still bad?

As we argued in our interview with OpenAI’s own Andrew Ambrosino (the irony is not lost on me), it comes down to human discernment, taste, and other qualities that can’t be turned into “metrics” for a model…at least not yet.

Davis continues:

To put a more precise definition on it, I think this “taste” is the ability to make good decisions in places where there isn’t a programmatic verification function.

For example: “make this function really fast” isn’t a “taste” task it’s a hill climbing task (make changes => test changes => repeat until goal met) which the models excel at right now (I think that any problem which can be expressed in this shape can be solved now by Opus 5.5)

“Which of these color palettes do you prefer?” is a “taste” question. You can’t really put a verifier on it other than your own opinion AKA your own taste. It’s a simple little example, but everything from codebase structure to dashboard layout to how features in chatgpt fit together all fit under here. Their implementations are “correct”, the tests pass, I just hate the choices they made.

“The tests pass, I just hate the choices” sums up my experience with coding agents perfectly. We’re working on our first two apps for MacStories (more in the near future), and while I’m not writing the code, I have to spend so much time thinking about usability decisions, onboarding flows, iOS best practices, and “it just doesn’t feel right” issues that models haven’t been able to abstract yet. I have to wonder if, in a rush to maximize infinite token usage and build everything “because why not?”, perhaps the big labs may have ignored these other aspects of good software design. I strongly believe that there’s more to a great app experience than elegant code that passes tests.

Knowing how these things can change so quickly in this scene, I’m sure this post will be obsolete in a few months. Maybe even weeks. But at this moment in time, Davis’ article is spot-on and human decisions still make a dent in software coded by agents.

  •  

Frames CLI 1.5.0, Now with iPhone 18 Pro and (Experimental) iPhone Duo Support

The updated Frames CLI also supports proportional scaling for iPhone Duo.

The updated Frames CLI also supports proportional scaling for iPhone Duo.

The Frames CLI – the companion command line interface to my Apple Frames shortcut I released earlier this year – received a 1.5.0 update earlier today with two notable additions: iPhone 18 Pro frames, and experimental support for iPhone Duo screenshots in all poses.

As always, my shortcut and CLI are based on Apple’s official product bezels, which is why, as of today, there is no support for Apple Watch Series 12 and Ultra 4 yet (those frames haven’t been published by Apple). iPhone 18 Pro is the new default frame family for the two Pro and Pro Max screen sizes, and the CLI supports all the new device colors this year (Burgundy, Glacier, Silver, and Black).

iPhone 18 Pro in Burgundy.

iPhone 18 Pro in Burgundy.

iPhone Duo support is experimental. I obviously don’t have an iPhone Duo yet, but thanks to Opus 5.5, I was able to grab screenshots from the Xcode 27.1 Device Hub, verify them against Apple’s official assets, and test everything in the Frames CLI. It should work! The CLI – and, thanks to its skill, your agent of choice – supports framing screenshots taken on the inner and outer display, different poses, different rotation settings, as well as screen recordings.

If you’re a developer working on iPhone Duo apps, I think the updated Frames CLI should come in handy to automate the process of framing multiple screenshots and screen recordings. As before, you can take advantage of CLI features such as proportional scaling, merge mode, and batch mode, which should help you with your upcoming App Store submissions for the iPhone Duo.

The Frames CLI is free and open source, works with any agent, and is highly customizable. I’ll release an updated version of the Apple Frames shortcut once I can get my hands on an actual iPhone Duo next month (hopefully). Fingers crossed.

  •  
❌