Lessons on Vibe Coding - Learning the Hard Way
Friends don't let friends vibe code
Abstract
I had a simple idea: build a platform for photographers to manage referrals, spend a little money, get a prototype, and go. Instead I burned time and cash first trying to manage overseas engineers I was not qualified to direct, then trying to vibe code the whole thing on Replit with ChatGPT as my translator. It all looked great in preview, which made it even more convincing, but the second I tried to actually launch it, the bugs, failed searches, broken chat, and endless deployment errors exposed how little I understood about what I had built.
The big lesson was not that AI coding tools are useless. It was that using AI to build software without any real understanding can make you feel productive right up until the moment everything breaks and you cannot fix any of it. If you are tempted to brute force your way into a product with prompts, support emails, and pure confidence, learn from my mistakes: if something feels too easy, there is probably a bill coming due later.
I had an idea for a platform that would help me, a photographer, control my word-of-mouth referrals. I called it Giggl (I thought it was a fun and unique name), pitched the idea to my entrepreneurship class at NYU (covered in slightly more detail in a previous article), and decided to try to build it. I thought that maybe a few hundred dollars and an overseas engineer could get me a decent prototype or âV1â and Iâd be off to the races.
I quickly learned that wasnât the case. Hiring and managing overseas engineers was almost immediately a mistake. Aside from the language barrier, the timezone barrier and the fact that I didnât even know what to ask for, I had no idea how to check what they were building or what they were charging me for. When they hit a wall, asked for design input or wanted direction, I simply couldnât give them anything useful.
Lesson #1: Donât hire a team of people then try to manage them if you have no idea what they are doing. Imagine trying to give instructions to a mechanic without ever seeing an engine before
I called a friend to ask how to manage these guys and he said (nicely) that I wasnât in a position to manage a technical team, and should try to learn to code and build it myself. That idea lasted about an hour. I next tried the vibe coding route.
Quick sidebar: Vibe coding is an approach to building software where you describe your goal in plain language and let an AI tool generate, refine, and test the code for you. The term was coined in February 2025 by computer scientist Andrej Karpathy to describe a shift from writing code line-by-line to acting as a director for AI assistants.
Keep in mind this was in August of 2025, I was a few months ahead of Claude Code, Cursor or anything else that is now considered mainstream vibe coding. I created an account on Replit, typed into the chat interface something like âBuild me a professional networking website allowing me to manage my clients easier.â and watched it go to work. Admittedly, the first output was visually kind of nice. Samples of the login and profile pages below (after a few rounds of tweaking).
I was hooked. I spent hours on Replit. I burned through free credits and started paying for the upgraded credit system. It was like a video game. Type what you want in plain english and watch the page come to life before your eyes.
A few hundred dollars later, I had built the networking feature, I built profile pages, I built a home feed, in-app messaging seemed like an obvious feature so I built that too. The site looked awesome, and when I clicked around in the Replit preview it worked seamlessly. After a couple weeks I thought I was done building and designing so I bought a domain and launched. It couldnât have been easier.
Lesson #2: If something seems too good to be true, it just might be
Right away I ran into issues. Launching took a full afternoon to figure out, and nothing worked. I tried to make a dummy account - bug. I tried to search on the platform - fail. I tried to chat - error. I canât explain why (see above for technical ability), but I have a gut feeling it had something to do with me force feeding instructions to a vibe code tool without knowing what I was doing. I went back to the drawing board and then had a lightbulb moment: I was going to use ChatGPT as my translator. The plan was to instruct ChatGPT to write code or code instructions, then give those instructions to Replit, and rebuild the platform with this new system.
Lesson #3: Using AI to use AI without any idea how AI works is a bad idea.
I was cruising. I reached the next level in the video game. I was a master prompter. âChatGPT, give me instructions to give the Replit agent so we can build a site that is âa professional networking website allowing me to manage my clients easier.â Letâs break it down step by step this time.â I was the king of Copy and Paste.
Rebuilding the site took about a week this time. The AI revolution had arrived. My output was 3xâd. I was ready for the launch! When I hit the big green button of success (Deploy), I immediately hit an error. I couldnât get past the âGenerating database migrationsâ phase of deployment, whatever that means. This is where my new ChatGPT-forward system kicked in: I took a screenshot of the error, sent it to ChatGPT for solving, took the hundred lines of code it gave back to me, copied that into the Replit agents chat for implementing, and I was back in the game.
A few minutes later and I was ready to deploy again!
Except, the same error occurred. This time I was more direct with Chat âfix this and do not make mistakes this timeâ thinking if I were more serious, it would work harder. I ended up in this cycle for about a week. I emailed Replit. I asked a friend for help. I screamed at ChatGPT. I tried rolling back to previous deployments. Nothing worked. I was stuck on this deployment page forever. No matter how much I yelled at ChatGPT or the Replit AI support bots (Mark and Sarah - Iâm on to you) about fixing the âGenerating database migrationâŠâ error I couldnât fix it. I had a 22 thread long email chain with âBobâ from Replit support about fixing this. Nothing worked.
Lesson #4: Angrily yelling at software wonât fix your problem. It wonât do anything
I was defeated but couldnât give up yet. I decided to try another route. The human route. I had learned of the Entrepreneurial Institute at NYU. A friend had gone to a Q&A session and thought it could be a good place to meet technical people who could help. Thus ending my attempt to be a solo founder / a vibe coder / a do-it-all entrepreneur.
Lessons Recap:
Donât hire a team of people then try to manage them if you have no idea what they are doing in the first place.
If something seems too good to be true, it just might be
Using AI to use AI without any idea how AI works is a bad idea.
Angrily yelling at software wonât fix your problem. It wonât do anything
This is not a complete list of my lessons learned while vibe coding. There were many more along the way, but these 4 were the most obvious looking back. If you have a similar story, Iâd love to hear it.
Stay tuned for how I navigated my first âhire.â