Back to Writing

Writeup

Testing the limits of vibe coding with Claude

I hit free-tier limits and paid for the basic subscription, mostly to find out what I was paying for. Paying more didn't automatically mean better vibe coding, and the thing that changed the outcome wasn't the tier.

Chatbot edits vs. real context

My first move on the paid tier was editing files through the chatbot: paste code in, describe the change, paste the result back. Tedious, and the outcomes weren't great, because the chat window doesn't have the codebase context Copilot has. Going back to the free tier for quick fixes, I found bugs faster and landed on better fixes than the paid chatbot loop, it just couldn't sustain that through a longer session before the usage limit. I was comparing two flavors of copy-paste, not Claude Code.

What artifacts were for

Then I learned artifacts could spin up a small live site inside the chat, not just a code block. Once it clicked, I could hand over a full application: describe what I wanted, ask for changes when the UI looked wrong, never look at the code. Not seeing the code stopped mattering once I could still get something that worked.

The Panini sticker tracker

The first real thing I built this way was a Panini sticker tracker for the World Cup: scan your cards, see what's missing, check whether a proposed trade is good. Storage was the first wall, since an artifact isn't built to persist a running trade history, so I kept it as a runtime tool: import cards from CSV, export haves, missing, and duplicates back to CSV, re-import next session. The point was never storage anyway. It was judging whether a trade was worth making, with distance as a second filter for whether it justifies the gas or the trip.

Connectors, and a job-search assistant

After that I found live artifacts and cowork. I was skeptical about giving Claude access to my accounts, so I tested connectors for live data instead of full system access. The first read my email and calendar, pulled the job-related messages, and rated them against my resume, with the Google Drive connector as a stand-in for a database. It worked, though it's no substitute for a real database beyond a personal tool. It became a job-search assistant: surfacing the openings that fit what I want next instead of me combing through email.

Claude Code, and a UFC predictor stalled for years

Then I tested Claude inside VS Code. The first thing I gave it was a UFC fight predictor I'd wanted for years and never built. It stalled every time on data: the UFC site has no API and the fight-record URLs aren't parseable. Claude wrote the scraper, the part I'd never gotten past, and built the project out in a Jupyter notebook using what I'd learned in college data science: pulled the data, normalized what was missing, left me a dataset to build on. That dataset is now a full Flask app: browse any upcoming card, sort fights by how close the stats favorite is, or pull up two fighters head-to-head with career striking and grappling splits.

The World Cup predictor

Same shape of project, but real APIs existed, so the constraint was the free tier's data caps instead of scraping. This is where I tested how far I could get accepting Claude's decisions instead of directing every step. I still stepped in at the moments that mattered: build a backup data source once I hit request limits, restructure the file layout once it piled up flat instead of split by feature, fix the UI, tell me what additional features were feasible. Claude wired up the APIs, surfaced failed data pulls in the UI instead of failing silently, and built a caching layer on its own so repeat runs wouldn't burn the request limit. What would have taken me weeks or months, blocked as much by my own gaps as by life, took a few hours.

What made the difference

The tier I paid for mattered less than where Claude sat. A Claude Code session lasts longer than the chatbot copy-paste loop because it reads and edits only what it needs instead of pasting whole files back and forth. The feature set had also grown while I wasn't paying attention: cowork showed up after Claude moved off the old clawdbot harness. A few years ago vibe coding didn't hold up for me; the fixes broke as much as they solved. This time, across a sticker tracker, a job-search assistant, and two data-science projects, it did.

Why can't I do the same?

Plenty of people with no technical background have vibe-coded companies that make real money. What do they see that I don't? My guess is it's because of the lack of technical background, not despite it. I know enough to second-guess a schema, a caching strategy, a file structure before Claude's finished writing it. Someone who's never touched a database doesn't carry that into the conversation, or the analysis paralysis with it.

No ceiling yet

Next test is MCP servers. After that, the one that matters most: connecting these projects to GitHub and version-controlling them, so there's a trackable record of how much of this was actually AI over time instead of my own word for it.