
Follow ZDNET: Add us as a preferred source on Google.
ZDNET’s key takeaways
- Tools such as Cursor can go a long way toward simplifying code setup.
- There’s still a lot of work to refine the results.
- Conceiving an app’s goals and how to get there is the hidden gotcha of AI coding.
The biggest success so far of generative artificial intelligence in the enterprise is AI coding tools that assist programmers. Startups such as Cursor, Replit, Lovable Labs, Harness, Windsurf, Augment Code, All Hands AI, and Microsoft, with its Visual Studio with GitHub Co-pilot, all offer programs that can drastically reduce the hand-coding humans need to do.
And so I wondered: Could a newbie like me, with limited programming knowledge, talk my way through creating an app?
Nvidia CEO Jensen Huang has said that vibe coding English is going to be the new programming language. Armed with that blessing, I set out to try.
Also: Why AI coding tools like Cursor and Replit are doomed – and what comes next
I had a blast watching how Cursor and the others can automatically perform tasks such as setting up the “virtual environment,” finding and installing code libraries, installing and running a local server, and making constant tweaks. The fact that an app can do all that with a simple natural-language prompt from the user is a wonder to behold.
After several days of experimentation with multiple tools, I managed to get a small, simple data analysis program running. It was a promising start, but it was also clear I couldn’t get very far from there without some actual programming skills.
Too many times, PC-based tools such as Cursor and Microsoft Visual Studio bounced me into a terminal window and asked me to run various command-line tasks. Although I know my way around a command line, it was a tedious extra step — multiple steps, in fact. I’m sure a non-programmer with less patience than I would have given up.
While less taxing, cloud offerings such as Replit and Lovable quickly had me burning through credits as I tried to figure out what changes my app needed to move forward. And, putting my private data in the cloud was something that gave me anxiety.
My first program
Most people who use AI use a chatbot to have conversations, analyze a handful of documents, or maybe draw a picture.
All the coding tools, Cursor and the rest, operate on the same principle: You type into a prompt, and the program takes a project description in even vague terms, formulates a plan of attack, sets up the requisite code files, and automatically generates a user interface for your new program, usually one running in a web browser.
My intended vibe coding project: a database analysis tool that can ingest word-processing documents and search them for patterns. My vision was to add a section to my newsletter’s website where a reader could perform not just a keyword search of my 1,731 articles, but also more complex free-form queries, such as, “How has the position of Nvidia as a company and an investment changed over the past five years?” My articles, which have hundreds of mentions of Nvidia, could yield a kind of executive summary that isn’t available just by asking the same question in ChatGPT or Perplexity, because they don’t have my special articles.
Also: Worried about AI coding? Why the invention of power tools is the blueprint for your career future
First steps
I started with Cursor because it’s the brand I’ve heard of most among the tools, so I figured it should start with the name on everyone’s lips. I downloaded and installed the MacOS binary as easily as any other Mac download.
Cursor offers a 7-day free trial for the Pro version, but I decided to skip it and start with the free plan.
To a non-coder, the first screen in Cursor after sign-up can be daunting. It asked if I wanted to “open project,” “code repo,” or “Connect via SSH.”
Most vibe coding work is done in the side panel of these apps, where you type as you would into a ChatGPT prompt.
Screenshot by Tiernan Ray/ZDNET
Although I knew nothing about how this program worked, I knew it used a chat paradigm like ChatGPT. I figured out how to get to the “agent” side panel — a shortcut: pressing command+I on the keyboard — and I described my intended project.s.
Also: This ‘critical’ Cursor security flaw could expose your code to malware – how to fix it
All these programs, both those running locally on Mac or PC and those running as a cloud app in a web browser, have the same three essential places where you type or observe results: The agent panel, where you prompt the model, familiar to us all; the terminal display, where you see a traditional command line, daunting to all but the initiated; and a preview of your app’s graphical user interface, GUI, the end result of your work.
It’s all about going back and forth between the three as you make requests, tweak things, see results, and repeat.
Initial exhilaration with Cursor
The first several minutes with Cursor were electrifying. Cursor described all the requirements of the project, which I wouldn’t have known; it then offered to set up the file structure for the project on my hard drive, connect to the database, install necessary Python files, etc. I asked if I could use Mac’s .Pages word processing files, and was relieved to have Cursor tell me it would install the requisite “parser” from an external code library.
I was thrilled.
And, then: disappointment.
Cursor told me it would install some Python libraries needed for the project. Then the program restarted itself, and my chat history from the previous hour was nowhere to be found. There was no chat history whatsoever; it was blank. That meant the plans we discussed for what we were going to build were gone.
Also: 10 things I wish I knew before trusting Claude Code to build my iPhone app
I spent an hour on the matter and learned that other people have had their chat histories disappear. The help forum, and a new chat in the agent window about the problem, made it clear that this is just one of the things that can happen. The chat history for a project is stored in a “workspace” folder, inside the ~Library folder of the current user account on the Mac hard drive. But, there’s no way to force Cursor to retrieve any of that chat history if it’s not doing it automatically.
That’s a non-starter for me. I’m not going to work with a program that can’t reliably maintain chat history, given that chat history is one of the key innovations of vibe coding. I gave up on Cursor and moved on to Replit.
I hit the paywall with Replit fast
Replit is all online, in the cloud. no download. I wasn’t as happy with that because I’d like to use my own data offline, on my Mac, but I decided, for the sake of the experiment, to take the risk of exposing my data.
I described the project goal, and Replit got to work setting up the environment, with a bare-bones app window ready in preview mode within about 15 minutes. I requested the ability to use .Pages files as data, and it adjusted the environment variables.
Also: Vibe coding feels magical, but it can sink your business fast – here’s how
All these programs hosted in the cloud have a set amount of capacity before you have to stop and wait to work again. I quickly ran through the allotment on Replit before I had a chance to do anything with my newly created app.
With the first big query I tried, the app failed because it said no data had been uploaded, even though all my data sources were selected in the side panel. Just as I described the problem of missing files in Replit, I hit the free plan’s quota and was told I would have to wait 24 hours to resume work unless I upgraded to a paid plan.
You can hit the paywall fast with the cloud-based apps, as I did with Replit, well before I had a really functioning app.
Screenshot by Tiernan Ray/ZDNET
Visual Studio wasn’t exactly my savior
While I contemplated whether to trade up to the paid plan with Replit, I knew I still wanted to work on something on the local machine rather than in the cloud. So, I went next to Microsoft’s Visual Studio, which has the built-in GitHub Copilot function that provides chat-based programming just like Cursor and Replit. Visual Studio has a dedicated Mac IDE just like Cursor.
Although Visual Studio can request permission to run terminal commands, instead, most of the time it provided code snippets that I had to copy and paste into the command line.
Also: After coding catastrophe, Replit says its new AI agent checks its own work – here’s how to try it
Finally, after a couple of hours of this terminal business, all technical issues were resolved, and a prototype analysis app was up and running in the web browser on the local server. This was the farthest I’d gotten, so I was ecstatic!
Then came the really hard part. What Visual Studio had produced was a kind of simple text-string-matching function that would simply see if a given string of text could be found in a file. That’s not analysis, it’s just keyword-matching. I tried prompting Visual Studio Copilot to refine the analysis, but hours of trial-and-error in Visual Studio yielded no improvements.
It became clear at this point that building an analysis tool that can actually perform textual analysis is a complex matter. It means not merely being able to code, or to have Copilot code; it means understanding what the analysis function consists of, which would affect choices made.
I was able to get a very basic text-string-matching function in a web interface with Visual Studio, and then I realized I wanted much more than that.
Screenshot by Tiernan Ray/ZDNET
Lovable’s fast start
I still wasn’t ready to pay Replit money, so I moved on to Lovable, which offers a free cloud-based setup that seems a lot like many of the others.
I was delighted to see how quickly Lovable created a web front-end to upload files and perform a textual analysis. Also, Lovable has the simplest user interface, hiding a lot of the code details. Out of the four with which I worked, Lovable is the most like using ChatGPT, Gemini, or Perplexity
Also: How to create your first iPhone app with AI – no coding experience needed
However, I quickly reached the same conclusion as with Visual Studio: To get meaningful analysis, more work would be needed. I told Lovable I wanted analysis of “themes, ideas, and perspectives” in the articles uploaded, and it suggested I grab Google Gemini and use that, to which I agreed.
That was an improvement. Gemini provided some high-level observations that I found relevant. However, because of the unique parsing requirements of Apple .Pages files, Gemini could only analyze document titles and metadata, not the bulk of the article.
Before I could take another step, I had maxed out the free plan’s credits. I liked what I had seen so far, and I was so exhausted by failure that I was determined not to leave without some kind of achievement.
So, I put in my credit card for Lovable’s Pro plan, $25 per month for 100 credits.
Also: I looked into the most popular AI apps, and the runner-up caught me by surprise
I proceeded to make some enhancements. Instead of relying on .Pages files, I connected Lovable to an archive of articles that I maintain in XML format on the Algolia service. That procedure was relatively simple. The app was able to retrieve all the text from the Algolia server, send it to Gemini, and Gemini performed rudimentary semantic analysis in response to queries.
I finally achieved a basic text analysis application.
Before wrapping up, I returned to Replit the next day after the pause in my free credits. I proceeded to try solving the issue of files not being read. It seems Replit had made some sort of error in extracting the contents of my .Pages files. I tried again uploading documents, Replit tried to fix the situation, but this dragged on for another half hour. I gave up on Replit, very glad that I did not give them any of my money.
I finally achieved a minimum viable product with Lovable’s tool.
Screenshot by Tiernan Ray/ZDNET
The big picture
The AI tools helped me do a lot of things I couldn’t have done without them, that’s for sure. At the same time, they made me aware of just how much more effort I would have to put into the task to master all the eccentricities of the programs and the quirks of installing and maintaining code.
Also: Worried AI will take your remote job? You’re safe for now, this study shows
I was caught between two worlds: the world of desktop software, such as Cursor and Visual Studio, and the world of the cloud-hosted platform. Neither was exactly right for me. I had too many headaches with the desktop software. But the cloud-native versions kept the meter running the whole time, racking up costs, and I had to expose my data by putting it on a remote server.
Inside a big enterprise with a big IT team, someone else would have handled the details of setting up the virtual environment, managing the data, etc., for me. But, as a sole proprietor, where I’m the IT team, there’s just a lot of extra work for me.
I will say that using these tools gave me a greater appreciation for programmers. I’ve sat and watched people program and been amazed by how they make intuitive leaps to find problems in code and improvise solutions. Trying and failing to do anything, even with a lot of automation help, made it even clearer how much is involved just to manage the tool itself and jump into action when the automation doesn’t work.
Also: What is AI vibe coding? It’s all the rage but it’s not for everyone – here’s why
I don’t think the job of the human coder is going away anytime soon.
I also gained a greater appreciation for product development teams. When I finally reached something usable with Lovable, it was clear to me just how much more work would be involved in designing the ultimate app, and how to get there. You can automate code, but that just leaves more decisions about what you are actually trying to build, and how you will know when you’ve got a minimum viable product. I think that means product development teams are not going away, either.