A.I. and Vibecoding Helped Me to Create My Own Software

0
2

I am not a coder. I can’t write a single line of Python, JavaScript or C++. Except for a brief period in my teenage years when I built websites and tinkered with Flash animations, I’ve never been a software engineer, nor do I harbor ambitions of giving up journalism for a career in the tech industry.

And yet, for the past several months, I’ve been coding up a storm.

Among my creations: a tool that transcribes and summarizes long podcasts, a tool to organize my social media bookmarks into a searchable database, a website that tells me whether a piece of furniture will fit in my car’s trunk and an app called LunchBox Buddy, which analyzes the contents of my fridge and helps me decide what to pack for my son’s school lunch.

These creations are all possible thanks to artificial intelligence, and a new A.I. trend known as “vibecoding.”

Vibecoding, a term that was popularized by the A.I. researcher Andrej Karpathy, is useful shorthand for the way that today’s A.I. tools allow even nontechnical hobbyists to build fully functioning apps and websites, just by typing prompts into a text box. You don’t have to know how to code to vibecode — just having an idea, and a little patience, is usually enough.

“It’s not really coding,” Mr. Karpathy wrote this month. “I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.”

My own vibecoding experiments have been aimed at making what I call “software for one” — small, bespoke apps that solve specific problems in my life. These aren’t the kinds of tools a big tech company would build. There’s no real market for them, their features are limited and some of them only sort of work.

But building software this way — describing a problem in a sentence or two, then watching a powerful A.I. model go to work building a custom tool to solve it — is a mind-blowing experience. It produces a feeling of A.I. vertigo, similar to what I felt after using ChatGPT for the first time. And it’s the best way I’ve found to demonstrate to skeptics the abilities of today’s A.I. models, which can now automate big chunks of basic computer programming, and may soon be capable of similar feats in other fields.

A.I. coding tools have existed for years. Earlier ones, like GitHub Copilot, were designed to help professional coders work faster, in part by finishing their lines of code the same way that ChatGPT completes a sentence. You still needed to know how to code to get the most out of them, and step in when the A.I. got stuck.

But over the past year or two, new tools have been built to take advantage of more powerful A.I. models that enable even neophytes to program like pros.

These tools, which include Cursor, Replit, Bolt and Lovable, all work in similar ways. Given a user’s prompt, the tool comes up with a design, decides on the best software packages and programming languages to use, and gets to work building a product. Most of the products allow limited free use, with paid tiers that unlock better features and the ability to build more things.

To a non-programmer, vibecoding can feel like sorcery. After you type in your prompt, mysterious lines of code fly past, and a few seconds later, if everything goes well, a working prototype emerges. Users can suggest tweaks and revisions, and when they’re happy with it, they can deploy their new product to the web, or run it on their computers. The process can take just a few minutes, or as long as several hours, depending on the complexity of the project.

Here’s what it looked like when I asked Bolt to build me an app that could help me pack a school lunch for my son, based on an uploaded photo of the contents of my fridge:

The app first analyzed the task and broke it down into component parts. Then it got to work. It generated a basic web interface, chose an image recognition tool to identify the foods in my fridge and developed an algorithm to recommend meals based on those items.

If the A.I. needed me to make a decision — whether I wanted the app to list the nutritional facts of the foods it was recommending, for example — it prompted me with several options. Then it would go off and code some more. When it hit a snag, it tried to debug its own code, or backed up to the step before it had gotten stuck and tried a different method.

Roughly 10 minutes after I had entered my prompt, LunchBox Buddy — which is what the A.I. had decided to call my app — was ready. You can try it for yourself here. (The version I built incorporates an A.I. image recognition tool that costs money to use; for this public web version, I’ve replaced it with a simulated image recognition feature so I don’t rack up a huge bill.)

Not all of my vibecoding experiments have been successful. I’ve been struggling for weeks to build an “inbox autopilot” tool capable of responding to my emails automatically, in my writing style. I’ve encountered roadblocks when trying to integrate A.I. work flows into apps like Google Photos and iOS Voice Memos, which aren’t designed to play well with third-party add-ons.

And, of course, A.I. occasionally makes mistakes. Once, when I tried to build a website for a tire shop in my neighborhood, the A.I. made up fake reviews from the shop’s Yelp page and added them to a testimonials page. Another time, when I tried to turn a long story I had written into an interactive website, the A.I. included about half the text and left out the other half.

Vibecoding, in other words, still benefits from having humans overseeing the robots, or at least hovering nearby. And it’s probably best for hobby projects, not essential tasks.

That might not be true for much longer. Many A.I. companies are working on software engineering agents that could fully replace human programmers. Already, A.I. is achieving world-class scores on competitive programming tests, and several big tech companies, including Google, have outsourced a large chunk of their engineering work to A.I. systems. (Sundar Pichai, Google’s chief executive, recently said A.I.-generated code made up more than one-fourth of all new code deployed at Google.)

If I were a junior programmer — the kind A.I. appears most likely to replace — I might be panicking about my job prospects. But I’m just a guy who likes to tinker, and to build tools that improve my life in small ways. And vibecoding — or actual coding — is one area where A.I. is unmistakably improving.

Since talking about my vibecoding experience on my podcast last week, I’ve heard from dozens of other people who have been building their own tools with A.I. assistance. Colleagues have told me about the nutrition apps they’ve built to help them stick to their diets, or the tools they’re using to summarize the email newsletters they get. Readers have sent in websites they’ve built to track the price of eggs, or scrape Zillow listings in Los Angeles to discover instances of rent-gouging after the Palisades fire.

Few of these tools are world-changing in their own right. What’s new and notable is that with a few keystrokes, amateurs can now build products that would have previously required teams of engineers.

I’m not Pollyannaish about A.I., or blind to the effects that A.I. coding apps could have on society if they continue to improve. I think it’s possible that an A.I. that automates building useful software could also automate the creation of malicious code, or even lead to autonomous cyberattacks. And I worry that software engineering is just the first white-collar profession to experience the labor-replacing effects of A.I. tools.

But for now, building apps to automate annoying or time-consuming tasks in my life seems as good a use of A.I. as any. So I’m going to keep vibecoding — at least until my kid can pack his own lunch.

LEAVE A REPLY

Please enter your comment!
Please enter your name here