← Journal/ Publishing

Publishing

From prompt to production: the six things that break when a vibe-coded app meets
real users

It ran perfectly on your laptop with two test records. Here is what falls over at 200 users, and what to fix before launch day.

NK Nadia KowalczykPlatform engineer 4 September 2026 · 6 min read

A working prototype and a production application differ in about six specific ways. None of them are exotic, and all of them are easier to fix before launch than after.

1. The database has no indexes

Fine with 50 rows. At 50,000 the list view takes eleven seconds. Add indexes on every foreign key and every column you filter or sort by, then re-run your slowest page.

2. Nothing is backed up

A nightly dump to object storage in another region takes twenty minutes to set up and is the difference between an incident and a catastrophe.

3. Errors go nowhere

If a request fails at 2am and no one is told, you will hear about it from a customer instead. Route exceptions to email or Slack from day one.

4. File uploads are unbounded

Cap the size, check the MIME type, and never serve user uploads from the same origin as your admin panel.

5. Secrets live in the repository

Move them to environment variables and rotate anything that was ever committed. Assume it is public.

6. There is no staging environment

One extra copy of the app pointing at a copy of the database. It costs a few dollars a month and stops you testing in front of your customers.

Ready for your next read?All articles ↗

Keep your next idea moving.

View all articles ↗