I am sure everyone has heard about vibe coding by now. If you spend any amount of time in the AI arena then you will invariably see videos or articles about some bro having vibe coded their way to $5000 gazillion dollars.
The main part they tend to exclude is that they are likely just lying.
Can it be done? Sure, people buy anything, even half arsed projects that provide a service you could spend 5 minutes doing manually.
However, I am quite convinced what these peddlers of sandcastles don't ever convey, is just how much is either lacking or just how small the scope needs to be.
Regardless I gave it a shot, and honestly maybe I just have a knack for finding the one type of project that baffles AI or I am not able to communicate like a pro prompter...

It is likely a bit of both, even simple projects can become extremely complex when you allow any form of user interaction. I also am probably not doing the effort to set up boilerplate prompts to keep the AI on track and instruct their every action.
At First
So the idea is simple. I think. I wanted a Bible app where I can highlight anything and add a note. I actually did not know biblegateway can do this since I only ever used youversion and ebible. Having googled Bible study apps I found only overly complex systems so be that as it may.
When it actually comes to displaying or finding versions of the Bible to just load on a page, that is a whole other technical problem. They seem to use a seemingly standardized although free-for-all cowboy way of parsing this "standardized" format(s). If that sentence makes no sense then good luck finding info on the USFM et al formats.
So I just opted for the Free Use Bible APIapi , they provide multiple versions that are truly free. So there is no concern of licensing except maybe for the KJV official, which I think I will just exclude. The same goes for NIV, it is not included in the api because it has copyright. I have no interest in copyright.
Anyway, so I used the Bible API , gave the link to a new AI agent - MiniMax - and since they are new and fresh and were free for the time being I figured it would be the perfect test.
//Simplified prompt... not by much
Using the api provided, give me a simple Bible reading app in which I can select and highlight any text within a chapter. I should be able to easily change versions, book and chapter in a main select navigation.
That was pretty much it and it did rather well. Given that I changed over to Gemini eventually, I only appreciated how well it figured out the API endpoints and had the content loading with no problems.
It did lose its mind when it came to the highlight feature and although I tried a few tweaks it just continued doing it just wrong enough to be an irritation.
I ran 3 versions before just deleting everything. I was not exactly attached to the code and frankly the layout it made was enough of a wireframe for me to call it a day.
NEXT AI
Then I moved over to Gemini, just the chat window. I gave it the same prompt but forced it to start from the bottom. It was not able to just read the api docs so I gave it the exact api endpoints and let it run the boilerplate for setting those up. So far so good.
Gemini makes the very specific bit I want and I avoid writing 20 lines of code. Then Gemini likely starts feeling a bit chuffed with itself and pukes out 100's of lines.
I test them , surprised it works, now we are both chuffed with Gemini....
Then I add simple , isolated task to do. It loses its damn mind. Writes a gazillion methods to accomplish something that should really not be all that complex.
Worst is Gemini has opened its code editor window, so now it thinks it knows all but can't actually comprehend the scope of the project fully. It also gets super obsessed with maintaining certain structures.
This obsession with a certain solution is why I have to keep deleting the chat and just re-prompt another chat.
Text Selection
Since it is in the title I might as well mention it , but storing and retrieving text selection is bloody hard.
It is not really more or less harder than normal data management or structuring, but it is harder due to the grind it seems. There are a lot pieces to puzzle together and seems to work better with a good amount of labelled data. I am using Alpine.js to render the dom, and my most recent discovery seems to point towards the way these frameworks output elements can also completely destroy any structure you thought you had.
Gemini specifically though seems hell bent on not being able to pivot from one method to another. This is the kind of problem that is hard because you need to have a flexible system in place to quickly try new ways of storing then restoring the selected data html.
Sounds simple, and after 900 lines of "vibe" coding I would think Gemini got this down. It is however similar to the saying "You are the dumbest smart person I know.