DEV Community

Cover image for I Vibe-Coded an App for a $3,000 Hackathon. It Was Complete Slop 🫠
Qazi Qamar Siddiqui
Qazi Qamar Siddiqui

Posted on

I Vibe-Coded an App for a $3,000 Hackathon. It Was Complete Slop 🫠

In January 2026, I vibe-coded a Streamlit app to analyze dozens to hundreds of GitHub profiles in a single click. We all know GitHub provides their REST API, so the only thing remaining was to open Claude Code and pass the prompt. Run the app, and it worked. Easy peasy.

(P.S. This was my submission for a $3,000 hackathon, but the problem is real: how would you analyze that many profiles?πŸ‘€)

But deep down, I knew the codebase was total slop. It felt like a house of cards that could crash at any second.

Things that were completely missing are:

  • Zero error handling: If one API call failed or hit a rate limit, the whole run died.

  • The UI freeze: If you passed 50 profiles, you had to stare at a frozen screen. There was no progress bar, leaving you guessing if the app crashed silently or was just slow.

  • Sequential processing: It ran one profile at a time. There was no parallel processing or async, making bulk runs painfully slow.

  • No batching: It was all or nothing.

  • No safety nets: No unit tests, no stop/resume buttons, and no way to export the partial data if you wanted to stop early.

Upgrading vibe code to real engineering

Since I now knew exactly what was missing and how to fix it, it was time to open the Claude Code window again.

Here is what changed:

  • Implemented parallel workers to fetch profile data concurrently, cutting down wait times significantly.

  • Added proper batch processing with real-time UI updates so you actually know where the queue stands.

  • Wrapped the API calls in robust error handling. If one profile fails, the app skips it, logs the error, and keeps moving.

  • Added controls to pause or stop a bulk run mid-way and instantly export whatever data had already been processed to a CSV.

The difference after implementing these changes was fabulous. The app didn't just get faster; it felt incredibly reliable and professional to use. My mentor always tells me: "There’s always a chance to improve and make it perfect later, but it should be done first."

The repository is open-source. You can check out the refactored code directly by clicking here ⭐️

BTW, I didn't win that hackathon, but the learning I gained throughout the process was epic.

Top comments (0)