As search gets worse and “working code” gets cheaper, apps get easier to make from scratch than to find.
I had a remarkable experience recently. My son (age 9) had been using an app on my phone to invent cards for the game Magic the Gathering. He wanted to print them so he could play with them. To save paper I wanted to print them 9 to a page (in a 3x3 grid). I got out my laptop and spent a while searching the web and everything I could find was crap. (Aggressively monetized SEOed shovelware which I couldn’t tell what it even did or ‘free demos’ of complicated publishing software that looked like it would wait until I was almost done and then demand cash to continue, holding my effort ransom.) Enshittification of the internet in full force.
After about 10 minutes searching, I opened Cursor1 and created a web app that exactly solves my needs. It took me 7 minutes (including deploying it to the internet). I didn’t even bother to sit down: I created the app hunched over my laptop at the kitchen counter.
It took me less time to make the tool than I spent trying and failing to find it.
(If you, or a child in your life, wants to print custom 2.5 x 3.5inch cards you can use it here.)
Search is still slowly getting worse and AI assisted programming is quickly getting better: this trend is going to get bigger, fast.
There has been a bunch of derision of ‘vibe coding’ in the software-internet-forums (Reddit, Hacker News). But I think both the sceptics and most of the vibe coders are missing the point. The skeptics/haters keep saying that you’ll never build a production level app ready to support millions of users if you are just blindly prompting AI. The practitioners/noobs are saying, “You don’t know that! And AI is going to get better and better”.
But as the cost of creating an application goes to zero, we won’t need as many production level apps ready for millions of users.

In the old universe (where computers were hard to program) it made sense to build richly featured print-layout programs. If you wanted to do a print-related job you would buy/download/subscribe to one. It would be complicated because it would have to support lots of different workflows, so that lots of different people with slightly different needs would buy it, otherwise it wouldn’t make economic sense to hire all those software engineers to build it. You, the user, would accept this complexity as the cost of getting a computer to do stuff for you. The software developers who made it would get frustrated that each user only used 20% of the features, but they all used a different 20%.2 Books named “PageLayoutPro for Dummies” and Youtube channels named “Amazing Franks PageLayoutPro Tutorial & Tips” would do pretty well.
In this new universe computers are not hard to program. The cost of a tool that arranges printable cards in a 3x3 grid to print is approximately 7 minutes of my time, and dropping.
I don’t need to monetize it: it only took me 7 minutes. We still have the discovery problem. I expect that the enshitification of search means that my little app will never be on someone’s first page of search results even if they, too, are trying to print magic cards from their phone. But even that line of thinking is incorrect “old universe” thinking.
In the new universe you don’t search for apps when you need a tool to do a task: you just create one and use it. Apps become single-use disposable objects: specialized to the exact thing you are doing right now.
No more “When all you have is a hammer everything looks like a nail.” Now we have “When you have a magical instantaneous tool factory, you can have the exact perfect hammer for each combination of nail and board.”
What does the business of software look like in such a world? It is a fundamental shift: the creation of simple apps is no longer the domain of the developer: it is a user activity.3 We software developers go one level up in abstraction.
People will still want curated, designed experiences, but those will be one level of abstraction higher. For example, a word processing tool that you build tooling and features into as you need them: most of which you don’t even save, because it's easier to rebuild them if you need them again than to remember what you named them.
Folks are also excited about building tools for AI Agents, and I think the same trend applies there but more-so. There will be long-lived tools for agents to connect to particular APIs (like a hotel or a restaurant) but I expect that future LLMs will be continuously creating small applications, running them and discarding them to accomplish single tasks. “Hey AI, can you print 4 of each of my son’s magic cards the correct size, as many as you can fit on a page?”
A popular AI-assisted programming environment
As this (now 20 year old!) post by Joel Spolsky explains so well: https://www.joelonsoftware.com/2006/12/09/simplicity/
A big inspiration to kick me into this line of thinking is this excellent article: https://koomen.dev/essays/horseless-carriages/ I read it three times in a row, and it changed how I’m thinking about the future.
Ha! I had a very similar experience on Monday! https://bsky.app/profile/iandanforth.bsky.social/post/3ltclhhsizk2u