← Adam Garceau

How to Deploy a Vibe Coded App: What the Demo Skips

October 31, 2026 · The written version of my video. Reading time: about 3 minutes.

Every AI build video ends the moment the app works. That's where my problems started.

I'm Adam, a marketer, not a developer. I don't write the code. I built software with Claude Code for a vending company I help run. It replaced a spreadsheet and an email routine the owner used for 20 years: stops, cash, inventory, mileage, invoices, all of it. Getting it to work was the easy part. Everything after that took longer.

Here is what the demo skips, and the five questions I ask before I call anything done. If you're still at the stage where your app doesn't work at all, start with why vibe coded apps break after the demo first.

Where does it live?

When it worked, it lived on my laptop. That's fine until you close the laptop and the guy in the field needs to log a stop.

So the first real question isn't "does it work?" It's "where does it run when I'm not here?"

For me, the answer is a little server in my house, a NAS. It's already on all the time and the data never leaves the building. I'm not flipping it over in one move. I'm running a copy on the server against a copy of the data first, with every test passing there before I trust it.

The data is the business

Here's the part nobody tells you: the code is replaceable, the data isn't. If I lose the code, Claude rebuilds it. If I lose the database, I lose the business's books.

So the rule now is simple. Before anything writes to the real data, it makes a dated copy first, every time, automatically.

I've used those copies. I was sitting down to do the books and it looked like we had been updating the data in the app but not in the spreadsheets. There was a whole month missing in the spreadsheet. Luckily there was a backup in the app I was building. Claude pulled that data and refilled the books in the spreadsheet, and we could look at it the way we normally do. Now it's backed up in two different places.

As a video business owner I've had backups save me more than once. A backup on my NAS has been a game changer, because sometimes a card fails, and that is a scary thing to find out about after the fact.

It almost leaked

This one scared me. Code lives in a thing called Git, which keeps a history of every version. Early on, copies of the real database got saved into that history. Those were the business's real books.

Nothing had left my laptop. I checked. The project had never been uploaded anywhere. But one push to the wrong place and it would have been out there forever.

So now there's a lock on it. If anything ever tries to upload that project, it refuses.

The lesson: ask your AI "where does my data end up?" Not just "does it work?"

Security is what you refuse to build

The app talks to the bank so it can see transactions. I made some hard rules before it touched anything. It never stores a bank password. It can never move money. It is read only.

You don't get security by adding features. You get it by deciding what the app is never allowed to do, and writing that down where the AI reads it every time.

Live is different

On my own website, I shipped something I didn't mean to. The version I was deploying had changes in it that I hadn't approved yet. Now, every time before it goes out, I compare what's live against what I'm about to push.

Five questions to ask your AI before you call it done

  1. Where does this run when my laptop is closed?
  2. Where does the data live, and how do I get it back if it breaks?
  3. Where could my data end up that I didn't mean it to?
  4. What is this app never allowed to do?
  5. What's different between what's live and what I'm about to ship?

If you can answer those five, you're past the demo.

Get the next one.

I send what I'm building, what worked, and what broke. Free, no fluff.

Free. Unsubscribe anytime.
Get the next one.

I send what I'm building, what worked, and what broke. Free, no fluff.

Free. Unsubscribe anytime.

I'm a marketer who builds his own tools. More at adamgarceau.com.