Vibe coding can be a lot of fun with the right mindset. All you need is the idea and chatbots such as Claude, Gemini and ChatGPT can generate workable code for you based on your instructions. I’ve spent a fair amount of time vibe coding event calendars and retro games just by chatting with LLMs, and it can open up a world to people who never thought they’d be able to create something out of code.
However, the model you use can have a dramatic impact on the quality of the project output. I wanted to see how the lighter models compare to the “thinking” models, as Google and OpenAI refer to them. These lighter models vary in name: Google’s Gemini interface calls it Fast (although the model is actually called, for example, Gemini 2.5 Flash), while OpenAI calls it Instant.
To get a feel for how different each model is for vibe coding, I decided to do a loose experiment. I started by creating a project using Gemini’s Thinking model — Gemini 3 Pro — and then wanted to see if I could replicate the same project with the fast model by using the identical prompts from the previous project. Given that there’s no way to guarantee the responses for each model, I knew there would be differences and the conversations would fork, but for the most part, I used identical prompts for both projects.
At the time of this testing, the fast model was Gemini 2.5 Flash. I expected the finished results to be different, and they were, but not nearly as much as I expected. What was different was how I got from A to Z with each model.
I really didn’t know where to start with my project, so I just asked Gemini to come up with some interesting vibe coding projects for me. One of them was a “Trophy Display Case,” and I took that as a jumping-off point. I asked Gemini to display a list of horror movies, instead of trophies, and provide more information about them when you clicked on one of the posters. Outside of those requirements, I gave both Gemini models creative control.
Don’t miss any of our unbiased tech content and lab-based reviews. Add as a preferred Google source.
Fast vs. thinking AI models: What’s the difference?
If Google gives us a choice between the Flash and Pro models, they must be substantially different, right? Yes and no. They’re both large language models, but they operate differently. To the everyday user, “fast” and “thinking” define the differences between the two well enough: speed versus depth.
A reasoning model is an LLM that’s been fine-tuned to break complex problems into smaller steps before generating the final output. This is done by performing an internal chain of thought reasoning path. Both Gemini 2.5 Flash and Gemini 3 Pro are reasoning models, but Gemini 2.5 Flash takes a hybrid approach: It offers a balancing act between speed and reasoning.
Gemini 3 Pro is the stronger reasoning model, and is optimized for diving deep to find answers. As a result, it’s slower than more efficient models like 2.5 Flash. Google has since released Gemini 3 Flash, a more powerful base model that replaced 2.5 Flash. Gemini 3 Pro remains the most powerful reasoning model available in Gemini for most people.
Gemini 3 Pro model is easier to work with compared to Flash
The final project Gemini 3 Pro made wasn’t perfect, but it was better than my original idea and about a mile ahead of what Gemini 2.5 Flash produced.
Using Gemini 3 Pro, I was able to create a landing page that showcased the movies from my list, complete with poster images, and when you clicked on a title, a page would open and reveal additional information, along with a link to view the trailer on YouTube. It wasn’t a complicated project, but I ran into plenty of issues and errors along the way.
I originally wanted the trailers to be embedded into the page, but it kept flagging errors that Gemini wasn’t able to fix, so it resulted in scaling back by just providing a linked image to watch the trailer on YouTube. It was fine, but less of a seamless experience than I wanted. That said, I appreciated how Gemini 3 Pro detailed the specific issues it was having with this feature and allowed me to make the decision to scrap it.
Another problem that Gemini 3 Pro attempted to fix several times was what it described as a layering issue. When clicking on a poster, a pop up with the film details would be displayed, along with a small button to exit that view, though it never worked. I asked Gemini to fix it four times, and it failed to address the issue until that last request. Gemini explained what it was doing with the code in broad strokes, but never went into too much detail, though I’d imagine it would have provided specifics if I’d asked.
The original project was simply a way to display a collection of movies and get more information about them. Outside of that, I didn’t think anything about styling or ways to make the web app interesting, and Gemini 3 Pro was helpful in this area. When I asked how I could make the app better, both in design and features, it suggested adding a 3D wheel effect to the movies and a random pick option.
This project took nearly 20 iterations. The final product was about as good as it was going to get, and it was a fun project, but there were issues Gemini failed to fix more often than not. The final product did more than I expected it to do, so I was happy with it. But with all the issues that I came across, I began to wonder how the fast Gemini model would handle the same project.
Vibe coding with Gemini 2.5 Flash is more manual
Unsurprisingly, using the “fast” model was faster than Gemini 3 Pro, but more often than not, this model suggested more manual approaches to come up with solutions for the project. The AI worked quickly, but it created more — and slower — work for me.
For instance, I wanted to the web app to show both the poster and synopsis of each movie on the list, but never thought about how that information would be generated. Without specifically asking, Gemini 3 Pro suggested I could sign up to The Movie Database and get an API key to pull in those details automatically, where Gemini 2.5 Flash essentially told me to “acquire” the images and go from there. How I acquired those images was seemingly up to me.
Gemini 2.5 Flash sometimes feels almost lazy compared to Gemini 3 Pro. There are some things that the Gemini Pro model will do without being asked, but Flash needs more specific prompting. At times, it felt like I was prompting a child that heard the instructions but was intentionally avoiding their chores.
In multiple instances, after I asked Gemini 2.5 Flash to make a change, it did so and provided the updated code, but only for the specific section it had modified. Then it would instruct me to swap out the old code for the new code. If you know what you’re looking for, replacing one section of code with another probably isn’t that big of a deal, but this is vibe coding, and if you don’t know where to place the code, even if it really is an easy task, that may stop some people in their tracks. It can throw off the vibe.
Moreover, Gemini 2.5 Flash simply suggested that I “acquire” the movie poster images and additional details. So, while breaking the bounds of the experiment parameters to only use the same prompts in both projects (which were loose, at best), I decided to ask Gemini 2.5 Flash what it thought about the idea of adding the API key for The Movies Database. It welcomed the idea and told me where to add the key. Instead, I asked the model to add the key that I provided. It added the key, but when I ran the web app, it wasn’t actually pulling poster images from the films I listed, so I had to ask it to fix that yet again. The model alluded to its limitations by saying, “Finding the exact TMDB ID for every movie on your original list is time-consuming, but I will populate the array with as many confirmed IDs as possible to make the collection accurate to your requested list.”
If it did anything it said it would, I didn’t notice. Compared to the wild array of different movies that populated, any match from the list I provided felt like a coincidence. Still, even though 99% of the movie posters that populated were incorrect, it still prevented me from needing to manually add the images themselves, in theory. In contrast, Gemini 3 Pro populated all the correct movie posters in one shot.
How the fast and thinking models differed when vibe coding
Every time I’d ask Gemini’s thinking model for an adjustment, it would make the change and immediately rewrite all of the code so I could simply copy and paste the entire code wherever I wanted without having to know where the code was updated.
Gemini 2.5 Flash was different. At one point, after making a minor adjustment, it gave me the code and told me to replace it with what was there. Hoping to avoid this, I asked it to rewrite the full code so I didn’t have to change anything. Its reply: “That’s a huge ask.” While it seemed to have believed I was asking much more of it at that moment, it’s a little jarring when compared to the Gemini 3 Pro.
The projects
Gemini 2.5 Flash made a somewhat workable project, but it was littered with mistakes even after attempting to correct the errors.
At the end of my testing, neither model was perfect, but working with Gemini 3 Pro was significantly easier. While both models could, in another project, yield very similar results, getting to that final destination will likely take two very different paths.
Working with Gemini 2.5 Flash, you need to be specific about what you want it to do and be ready to correct it when it seems to take shortcuts. It will take practice and experience, including working with other AI models, to spot when the model is taking a shortcut that could affect the project. If this is the only model you’re working with, you’ll need to be more diligent with it overall.
Gemini 3 Pro really does deserve its name. Not only did it handle the heavy lifting for this project, but it also offered helpful suggestions that elevated it from the basic idea I started with.
