Tim, don’t kill my vibe

· 3 minute read

Recent criticism of Apple’s AI efforts has been juicy to say the least, but this shouldn’t distract us from continuing to criticize one of Apple’s most deserving targets: App Review. Especially now that there’s a perfectly good AI lens through which to do so.

It’s one thing for Apple’s AI product offerings to be non-competitive. Perhaps even worse is that as Apple stands still, software development is moving forward faster than ever before. Like it or not, LLMs—both through general chat interfaces and purpose-built developer tools—have meaningfully increased the rate at which new software can be produced. And they’ve done so both by making skilled developers more productive while also lowering the bar for less-experienced participants.

Barring a sharp correction, Apple looks increasingly likely to miss out on a generation of developers conditioned to first reach for tools like Cursor, Replit, or v0—especially as Apple’s own AI tooling remains notably absent. This goes well beyond enabling new entrants to “vibe code”—experienced mobile developers who, despite history with Xcode and a predilection for building native apps, are begrudgingly swapping out their tools in acknowledgement of the inarguable productivity benefits.

Sure, AI-assisted developer tools can be used to generate native iOS apps, but they’re not nearly as good at this as they are at generating e.g. React, whose developer experience advantage predates the LLM wave and has only since accelerated. While Mobile Safari can run webapps quite well, and native apps can be built using React Native, those clearly aren’t strategically ideal for Apple1.

So iOS apps may increasingly be built using Cursor, and perhaps a larger percentage of them end up being built using React Native. And yet iPhones remain massively popular, so what’s the problem as long as they’re being built?

The wall that you’ll hit when actually trying to distribute them:

App Review has always long been a major source of developer frustration. Authoritarian yet inconsistent policy enforcement aside2, it’s simply too hard to distribute software even to your own Apple devices, let alone someone else’s. This isn’t new by any means, but as the time to build an app shrinks from weeks/months to hours/days, it feels more egregious—and thus like more of a liability—than ever before.

I recently built a small iOS app for myself. I can install it on my phone directly from Xcode but it expires after seven days because I’m using a free Apple Developer account. I’m not trying to avoid paying Apple, but there’s enough friction involved in switching to a paid account that I simply haven’t been bothered. And I used to wrangle provisioning profiles for a living! I can’t imagine that I’m alone here, or that others with less tribal iOS development knowledge are going to have a higher tolerance for this. A friend asked me to send the app to them but that’d involve creating a TestFlight group, submitting a build to Apple, waiting for them to approve it, etc. Compare this to simply pushing to Cloudflare or Netlify and automatically having a URL you can send to a friend or share via Twitter. Or using tools like v0 or Replit, where hosting/distribution are already baked in.

Again, this isn’t new—but being able to build this much software this fast is new. App distribution friction has stayed constant while friction in all other stages of software development has largely evaporated. It’s the difference between inconvenient and untenable.

So what’s the alternative? Tech platforms are dominant until they aren’t and—obviously—iPhone hegemony won’t last forever. When sufficiently zoomed in, it’s really hard to see the first few cracks in the foundation—the harbingers of the beginning of the end, even if we’re a long way from the actual end. I would’ve recently laughed at the suggestion that webapps could legitimately contend on mobile but I’m no longer laughing. OpenAI building an iPhone competitor might sound similarly hard to believe, but don’t forget that such skepticism—“The PC guys are not going to just, you know, knock this out. I guarantee it”—was levied by incumbents towards the iPhone itself.

If Apple sees its developer tooling and policies as neatly-paved sidewalks, new desire paths are forming—paths increasingly designed to minimize touchpoints with Apple. Alarm bells should be ringing for those concerned with what remains of Apple’s developer goodwill, and consequently, its market position.

  1. I’d argue that it isn’t ideal for users either, though the product quality gap does seem smaller than ever. 

  2. For the purposes of this essay only—they really shouldn’t be put aside. 

Watered down (and better for it)

· 2 minute read

Studies have shown that algorithmic timelines drive more engagement than reverse-chronological timelines comprised exclusively of content that the user has explicitly chosen to follow. This makes sense—the overwhelming majority of social media users don’t build and cultivate robust networks on these platforms. As such, it shouldn’t be much of a surprise that algorithmic timelines “outperform” what would likely otherwise be a pretty desolate experience.

That said, the few of us who did invest in curation got something even better. Every launch of Twitter or Reddit was comprised purely of exactly what you actually wanted to see. And if you used certain clients—an option that users of both services had until very recently—you could pick up right where you left off.

Exactly what you wanted and right where you left off, always. Without ads! The pure uncut experience. No wonder so many of us were addicted.

Things are very different today. Twitter and Reddit no longer let you use clients that provide this experience. “Following” timelines, while often still possible, no longer sync one’s position and routinely switch back to the algorithmic default. Low-quality ads fill every nook and cranny.

But beyond this, most importantly, there’s just no longer a single Twitter.

When everyone used Twitter, even the algorithmic feed—a worse experience than “Following,” to be sure—was OK. It was primarily comprised of tweets from accounts that you had actually followed, just in a different sort order. Now, with users spread across a myriad of different services, “For You” is full of performative, SEO’d clickbait—the likes of previously only seen on LinkedIn.

Before the diaspora there used to be one place to look and one place to post. But everything’s now spread across Twitter, Threads, Mastodon, and (I think?) Bluesky. Before posting, one must double-check if they’re sharing the right content for the right audience subset. Before reading, one must stop to remember if the app that they’re going to open is actually the one most likely to provide what they’re looking for in this moment. The likelihood that you’ll see what you want is reduced. The likelihood that the right audience will see what you posted is reduced. The likelihood that you’ll open multiple apps only to see the same content multiple times is increased. As is the likelihood that none of them provide the high that used to be available at will.

It adds up. It’s exhausting. It’s impossible to imagine that anyone who spent years with the uncut experience would spend nearly as much time doing all of this.

So we won’t. And we’ll be so much better for it. It couldn’t have been ideal for us to have spent so much time that way, but how could we not have?

We didn’t know how good we had it. But you can have too much of a good thing, so it’s better now that it’s worse.

Mea culpa

· 0 minute read

In January I wrote:

It’ll be pretty embarassing if this is still my latest post a year from now.

Technically I needn’t be embarassed, but let’s be honest, not writing at all until now clearly isn’t what I intended. It’s been a busy year! I moved into a new house, which honestly took up more time and energy than I ever could have imagined.

But still. More to come.