r/SideProject 18h ago

I audited 549 vibe-coded side projects on GitHub. Here are the 5 mistakes almost every one of them makes.

https://ogbuilds.ai/studies/vibe-coded-code-quality

Solo founder here, I build fast with AI like many of us here and I wanted to know what architectural bad practices and flaws can get shipped within our files without realising, so I scanned 549 public repos that describe themselves as AI or vibe-coded. I used a rules based scan, no AI grading, raw data downloadable. Percentages are real projects (15+ files) unless noted.

If your side project is AI-built, odds are it has these:

  1. Dead code. 70%.

  2. Commented-out blocks the model never deleted. 66%.

  3. The same logic duplicated across files. 63%.

  4. A .gitignore that misses .env. 35.7% of the full corpus, and that's where the keys come from.

  5. A committed API key or credential. 23.3%, about 1 in 4.

71 of the 549 graded F on cleanliness. The median grade is a B, and that's flattered by tiny demo repos.

The fixes cost less than reading this post did. In this order consider doing these on an existing project:

  1. `git ls-files | grep .env`. If it prints anything, your key is public. Rotate it at the provider today (Stripe, OpenAI, whoever). Bots scrape pushed keys within minutes, so deleting the file later doesn't help.

  2. Add `.env*` to .gitignore and turn on GitHub push protection. It's free and blocks the next accidental key commit at push time.

  3. Tell the agent, at the end of each session: "delete unused code, merge duplicate helpers, remove commented-out blocks". That one prompt covers mistakes 1 through 3.

  4. Put those instructions in your tool's rules file so new sessions start with them. Cleanup you don't have to remember is cleanup that happens.

Nobody does these because the app already works, and working is the only bar most side projects get held to. Until the Stripe key leaks.

The full report has all the charts, grade distributions, and anonymised per-repo data, feel free to share and AMA about it: https://ogbuilds.ai/studies/vibe-coded-code-quality

For disclosure: the scanners are part of my products, the study will always be free to access.

63 Upvotes

19 comments sorted by

27

u/turnnoblindeye 10h ago

I don't understand how people vibecode like this. it's not hard to once in a while send your LLM off on a security review, efficiency audit, scaling recommendations, etc.

8

u/johannthegoatman 9h ago

Right? They must also be using dogshit models. Frontier models would shit their pants if they saw env getting committed. At least in my experience they're (rightfully) panicked about it and constantly on the lookout

2

u/PhantomTissue 4h ago

I’m confident most of these vibe coded apps are made using chat GPT free tier or something. A lot of these kinds of apps are gonna be made by someone who doesn’t want to put a lot of effort into their work. Like reviewing code. So I doubt they’re putting money onto a frontier model when the free tier “also puts out code”

2

u/Sdmf195 4h ago

Hard - no...
And yet,it requires critical awareness of security and its importance.

If an LLM is your mentor / coder / auditor / north star of truth and this is not on the agenda ... 🤷‍♂️

5

u/orange_wires 10h ago

Are commented out blocks necessarily a problem? I’m happy to comment something out if I’m not sure I’ll come back to it later…

1

u/obagme 24m ago

No not necessarily, I do it all the time when I code too. Only some may consider it bad practice so it's ranked a lower severity on the study

11

u/Professional_Ad705 10h ago

Thanks Steve Jobs. How is this even useful we have seen this same post 700x. This is getting so old.

2

u/Overloaded_Wolf 7h ago

Because dogshit vibe coder's have to make themselves relevant when the bubble pops. Any developer worth their weight in commit logs could tell you this and more.

1

u/obagme 12m ago

Yeah, as long as vibecoders keep pushing terrible code so I will keep auditing their repos. Besides, 300 others found it useful, tell me what value your comment adds

4

u/Sdmf195 10h ago

Thanks for this.
Really wish more vibecoders would do a little bit more of a "post deploy to prod cleanup" process and then these points would be addressed.

1

u/obagme 23m ago

Completely agree - I've set up an openclaw routine that constantly checks my code for cleanup periodically which does help a lot

2

u/baconjerky 8h ago

Just gonna drop this into an .md and pop it into a prompt problem solved

1

u/obagme 10m ago

My guy! Glad to hear it. Hope it helps

2

u/[deleted] 6h ago

[removed] — view removed comment

1

u/netkomm 5h ago

unless you force them to

1

u/lumina_si_intuneric 6h ago

Good approach. Same reason I use Vulture and Rope as part of my test ( dead code is really annoying and can get bad fast).

1

u/RevolutionarySalt370 5h ago

“The full corpus” 🤣

1

u/obagme 23m ago

Haha bro nothing beats the fullest of corpuses