I miss craft
At face value, the web is incredible. In a world of app stores and regulations, the web allows anyone to get any app in front of any person instantly across the world. Usually, that process takes less than five minutes. With tricks like reverse proxies, it can be instant. The fact that I can spin up an ngrok process and share a project with someone across the entire world from me, instantly, will never cease to amaze me.
But the web is also more than a technology. Or at least, it was. In high school, the web was a platform for random explorations that defined my identity. As a student, homework went out the window—I spent almost all of my free time working on random projects. Some of them gained traction, but most didn't. The effort invested varied, but most projects were the result of sleepless nights over the course of weeks, if not months. Because projects required real effort, they justified spending time on a design system, on wireframes, on structured codebases. And because I had invested real time into them, these projects were usually maintained for months, if not years. People still use the test grade boundary tool I made in 2022—it's ugly and has quirks, but it works. If that site ever goes down, I will probably bring it back up because I'm proud of what my former self made. For many of these projects, I even wrote articles showing off the idea and the associated website. I was proud of the work invested in them, proud of the impact they made on my communities, and proud of the way they propelled my life forward. My relationship to these projects is that of an artist to their works. They are special to me. They will always have a place in my heart. I love them.
The web used to be littered with these kinds of apps. I remember being on Twitter in early 2022 and occasionally stumbling upon projects that made my heart jump—the kind of project that made me think, "Why didn't I think of that!" Because effort was a known quantity, most of these projects were small in scope; specific tools that solved a very small problem in someone's life. Every time I visited one of these sites, it was a small window into someone's life: Who were they influenced by? What opinions did they hold? About web design? Fonts? Function versus form? I collected them like one would with Pokémon: portfolios and projects and tools and trinkets, all on silly short little domains. Is this plant toxic? Chester.how has the answer. Who's coming to my event? Try smol.rsvp. Need a social to-do list? You'll find it at war.elk.sh.
LLMs changed all of this. I'm an avid user of Claude Code and ChatGPT. I work on AI products every day, usually more than 40 hours a week. These tools are built with the help of AI, and I've built numerous websites with AI, all of which have provided useful insight into my life. These AI-generated apps occupy spots on my phone home screen. They have helped me make major life decisions. They are with me from the moment I wake up to the second I go to sleep. And from a blanket perspective, they almost always make my life more enjoyable. I can go from idea to app in seconds. In theory, I should be thrilled—now, with the power of Claude Code, I can make 10 times the apps in one-tenth of the time. All of those projects I've bookmarked for another weekend, or all of the ideas I've abandoned for one reason or another... they can now be brought into reality. I can have every tool I've ever wanted. In theory, this should be my garden of Eden.
But, for some reason, I hate it. I've tried so hard to bring back an essence of craft into the apps that I build with LLMs, and universally, I've failed. Every app I make is lifeless, filled with the soul of middling design. There is no spirit, no earnestness. Apps built by Claude or Cursor are usually 80% of what I want, maybe with hours of prompting 90%. At their best, they are a more efficient route to the problem I want to address. But never the way I would have done it, with its flaws and bugs and human tendencies and errors. Of course, there are still errors, but now they are the same errors as every other website, every other engineer who had the same idea and stuck it into their asynchronous agent.
And nothing makes me sadder than the proliferation of AI-generated websites across the modern web. Previously, search results would sit empty—now almost any query will find a vibeslopped site on a dot-com domain. I miss the era of craft—of institutions dedicating real engineering effort to address a very specific problem. Newsrooms spent—and still do spend—years working on election dashboards. Now they compete with VoteHub and ElectionStatSheet. Aviation nerds used to create technical diagrams and one-off tools. Now their sites are on .ai domains, featuring everything from a fleet tracker to an AI travel planner. The era of small tools has come to an end; now that features are only a prompt away, every app has a mediocre version of every feature. They all look the same. Good luck monetizing anything; craft doesn't sell. When your product can be one-shotted, why wouldn't I just build my own for free? After all, the enthusiast market doesn't produce winners—just ask OnePlus.
The age of AI has turned the once-joyful act of browsing the web into a constant game of paranoia. On the web, I'm now an AI detective, hunting for hints of vibe-coded content. Usually it's obvious; but sometimes, small things will ruin a website. The unnecessary use of labels and center dots. Too many em-dashes. Rounded corners—or a total lack thereof. Today, products all look the same. Launch pages have no character. Human creativity is limited to what can be done with Claude... because that's what the timeline allows for. Animations that used to be moderately impressive now hold no weight because they are clearly prompted. I miss the era of Bootstrap, of Tailwind UI, of shadcn. At least then, there was no pretending. Now an LLM is given every possible path to finding its local minimum: design plugins, reference libraries, heaps of so-called inspiration. But they can never quite get there, never make something truly unique. I commend the counterexamples, the websites I miss, the ones that pass for real human ingenuity—all I know is my inspiration folder grows slower today than it did years ago, despite an astronomical increase in "projects per day" that I ingest. It makes me sick, like really actually physically pit-of-my-stomach-ache sick.
And yes, there are, of course, the counterexamples. Riley Walz seems to pump out a project every day—I can only assume he's using LLMs to do so. But he maintains an identity, and his tools are small in scope. They make me happy. Neal.fun is still creating some of the best games—I would call them art—on the internet. He is responsible for hours of productivity loss in my life, and I wouldn't have it any other way. And over on the ATproto, there are thousands of people coming up with new ways to utilize one of the coolest (and in my opinion, under-leveraged) technologies of the past few years. Almost all of them pass the "silly domain" test (see for example, microcosm.blue).
I'm sure there are still tons of apps being built with the craft and attention of years before. Probably more than ever. But they are being buried on a web filled with slop and garbage; with full product suites, prompted and created and abandoned in the span of a few days. I miss the personality, craft, and humanity of the old web. Won't someone bring it back?