You can't completely skip the beginner stage, but you can get some advice on what not to do.

Here’s what I wish someone had told me when I was starting out.


Not Paying Attention to Design

I’ve definitely been guilty of using the exact defaults that the tools generated. Inter font. Blue and purple gradients. Emojis sprinkled throughout the interface.

I genuinely thought they looked great. Original, even.

They did not look great. They looked like every other vibe coded project on the internet. It wasn’t until I started browsing Dribbble and Mobbin that I realized how generic my designs were. Now I change the font immediately using Google Fonts, remove gradients, pick a custom color palette from Coolors, and eliminate emojis entirely.


Forgetting the Favicon

Almost every AI coding platform has its own default favicon, and leaving it there screams “I didn’t finish this.” This one is so easy to forget, but it’s also one of the first details people notice.

A custom favicon takes minutes to create (Canva plus Nano Banana makes it easy) and it instantly makes your project feel more polished and intentional.


Forgetting Open Graph Tags

Another thing that’s so easy to forget. Open Graph tags control how your project appears when it’s shared. The title, description, and preview image all come from these tags. Leaving them as defaults makes your project look unfinished, and it’s a missed opportunity to make a good first impression.

Most tools let you update these in project settings, or you can prompt your tool to change them directly.


Not Reading API Documentation

This one cost me days.

For one of my first projects, I wanted to implement a specific feature using an API. I asked ChatGPT how to do it, and it gave me a confident, detailed response. So I spent several days trying to make it work. Debugging. Asking follow-up questions. Getting more confident, detailed responses.

Turns out the feature I was trying to build wasn’t possible with that API. It never was. The documentation made that clear, but I never checked. I just trusted the AI.

Now I always read the actual API documentation for any API or integration I’m using. AI is incredibly helpful for understanding how things work, but it can hallucinate capabilities that don’t exist. The docs are the source of truth.


Not Using GitHub

I got lucky with this one. Before I started using GitHub, I was only using tools that had version history and rollback features baked in. So I never actually lost work.

But I easily could have. If I had been building in a tool without those features and something broke, I would have had no version history, no backup, and no way to roll back to a working state.

Now I sync everything to GitHub from the start. It’s free, it gives you version control, and it makes deployment so much easier. If you’re just starting out, think of GitHub as a gateway between your code and wherever you’re hosting your project. Don’t rely on luck like I did.


Not Testing on Mobile

I built several web apps that I thought looked great. Then I pulled them up on my phone and realized they were completely unusable. Text was too small. Buttons were impossible to tap. Layouts were broken.

Now I test on mobile early and often. Most of your users are probably on their phones. If your project doesn’t work well on mobile, you’re losing them. And if you notice issues, prompt your tool for responsive design. It’s usually a quick fix that makes a huge difference.


Not Reading Error Messages

Error messages and console logs give a lot of helpful information. They usually tell you exactly what went wrong and where.

I always take a moment to read them. And if I need help deciphering what they mean, I paste them into Anthropic Claude or ChatGPT or Gemini. That combination of reading the error yourself and getting AI help to understand it will make you much better at debugging over time.


Skipping Row Level Security

I’m passing a warning about RLS on to you.

Row Level Security is essential if your app has users. It prevents users from accessing data that isn’t theirs. Without it, you’re leaving your users vulnerable. Enable RLS on every project that has any kind of user data. Most tools can guide you through setting it up if you ask.


Being Too Precious About Ideas

Early on, I had a few ideas that I tried to really force. I wanted them to be “The One.” I’d overthink features, second-guess the concept, and wait for the “right time” to start.

The right time is now. Vibe coding moves fast. You can build a rough version of almost anything in a day or two. If the idea doesn’t work out, you haven’t lost much. If it does work out, you’re ahead of where you would have been if you’d kept waiting. Not every idea needs to be “The Idea.”


Final Thoughts

Every mistake I made taught me something. But if I could go back and give myself a checklist, it would be this:

▢ Change the font
▢ Update the favicon
▢ Customize your Open Graph tags
▢ Read the API documentation
▢ Sync to GitHub
▢ Test on mobile
▢ Read the error messages
▢ Enable RLS
▢ Stop waiting for perfect

You’re going to make your own mistakes, and that’s fine. But hopefully this list helps you skip a few of the ones I made!


Have you made any of these mistakes?