I hit free-tier limits and decided to pay for the basic subscription, mostly to find out what I was actually paying for. What I got wasn't a straight line — paying more didn't automatically mean better vibe coding, and the thing that actually changed the outcome wasn't the subscription tier at all.
Chatbot edits vs. real context
My first move on the paid tier was just using the chatbot to edit files directly — paste code in, describe the change, paste the result back. It was tedious, and the coding outcomes weren't great, because the chat window doesn't have the same context Copilot has sitting inside the actual codebase. Oddly, going back to the free tier for quick fixes, I found bugs faster and landed on better fixes than the paid chatbot loop gave me — it just couldn't sustain that through a longer session before I hit the usage limit. At this point I still hadn't connected Claude to VS Code at all; I was comparing two flavors of manual copy-paste, not Claude Code.
Learning what artifacts were for
Then I actually learned what artifacts were for — that they could spin up a small live site inside the chat, not just a code block. My first few attempts couldn't even reproduce a working UI in the artifact pane. Once it clicked, it felt like I could hand over a full application: I never looked at the code, I just described what I wanted, and if the UI didn't look right, I asked it to change it. Not being able to see the code stopped mattering once I realized 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 you're missing, and check whether a proposed trade is actually a good one. Data was the first wall: an artifact isn't built to persist storage the way a real app is, and trying to store a running trade history inside it wasn't going to scale. I cut that back and kept it as a small runtime tool instead. It still works well for tracking your own collection — you import your cards from a CSV, and even though nothing persists between sessions, you can export your haves, missing, and duplicates back to CSV and re-import next time. The actual point of the tool was never storage, though — it was judging whether a trade was worth making, and using distance as a second filter: whether a trade is good enough to justify the gas or the trip.
Live artifacts, connectors, and a job-search assistant
After that I found live artifacts and cowork, and I was skeptical at first about giving Claude permission to touch my actual accounts. I got past that by testing connectors for live data instead of full system access. The first one read my email and calendar, picked out the job-related messages, and rated them against my resume. Storage was the same problem as before — no real database — so I used the Google Drive connector as a stand-in. It got the job done, but it isn't a substitute for an actual database if this were ever more than a personal tool. What it turned into was a job-search assistant: surfacing the openings that actually fit what I want out of my next move, instead of me combing through email by hand.
Claude Code, and a UFC predictor that had stalled for years
After that, I finally tested Claude inside VS Code. Setup took no time. The first thing I threw at it was an idea I'd had for years and never built: a UFC fight predictor. It stalled every previous time because there was no reliable data source — the UFC site has no API, and the URLs for fight records aren't structured in any way you can parse directly. I asked Claude to write a scraper for it, and it did, handling the part I'd never gotten past. I had it build the whole thing out in a Jupyter notebook, applying what I'd actually learned in college data science — Claude pulled the data, normalized what was missing, and left me with a solid dataset to build on.
The World Cup predictor
The World Cup predictor was the same shape of project, but this time real APIs existed — the constraint was the free tier's data caps instead of scraping. This was also the project where I actually tested how far I could get just accepting Claude's decisions instead of directing every step. I still guided it at the moments that mattered: I told it to build a backup data source once I started hitting the API's request limits, handed it as much historical data as I could find to build on, told it to restructure the file layout once everything had piled up flat and disorganized instead of split out by feature, flagged that the UI needed work, and asked it point blank what additional features were actually feasible. Claude wired up the API connections, 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 through the request limit. What would've taken me weeks, months, maybe years — blocked as much by my own technical gaps as by life getting in the way — took a few hours. It didn't feel like coding. No reading through tedious lines to understand what a function did, no early architecture decisions made just to dodge technical debt three months down the line. Getting an idea out of my head and into something real has never been easier.
What actually made the difference
Looking back, the tier I paid for mattered less than where Claude actually sat, and even less than I expected once I noticed why. A Claude Code session lasts noticeably longer than the old copy-paste loop with the chatbot — pasting whole files back and forth burns through a session fast, and Claude Code doesn't need to do that; it reads and edits only what it actually needs. The feature set had also grown a lot in the time I wasn't paying attention — cowork showed up after Claude moved on from the old clawdbot harness setup, and there was clearly more built here than a chat window with a longer memory. A few years ago I tried vibe coding and it didn't hold up — the fixes broke as much as they solved. This time, across a sticker-trading tool, a job-search assistant, and two real 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 them real money. I keep coming back to the same question: what do they see that I don't? My best guess is that it's not despite the lack of technical background — it's because of it. I know enough to second-guess a schema, a caching strategy, a file structure, before Claude's even finished writing it. Someone who's never touched a database doesn't carry that weight into the conversation. They don't have analysis paralysis to fight through first.
No ceiling yet
I don't think I've found the ceiling on this yet. The next test is MCP servers. After that, the one that actually matters most: connecting these projects to GitHub properly and version-controlling them — not just to save the code, but to keep an honest, trackable record of how much of this was actually AI, over time, instead of taking my own word for it.