Skip to content

After launchChecklist

Built your app with AI coding tools? What to check before real users arrive

AI coding tools can get a working app in front of you quickly. Before customers, payments or personal data reach it, someone has to check what it does with their data.

On this page

An app built with AI coding tools needs six checks before real users arrive. Put the accounts and code in your name. Move the secrets out of the code. Make sure each user sees only their own data. Keep a backup you can restore. Check it holds up under real use. Then name who looks after it next month.

Vibe coding means building software by describing it to an AI tool and accepting what it writes. The catch is not that such code is always bad. It may be software nobody has read closely, handling customers' data in ways nobody chose.

You can work through most of this yourself. For a second pair of eyes, our support for sites and software someone else built starts with a short review.

Your AI-built app security checklist

This is a first check before launch, not a security audit. Work through it before the first real user, payment or personal record reaches the app.

A first check before launch

  • The code, hosting, domain, database, payment and email accounts are in the business's name.Whoever holds an account can change it, lock you out or let it lapse.
  • No secret key or password sits in the code or in the repository's history.A secret in the code works for anyone who can read the code.
  • Two test accounts can't see or change each other's data.The app may show the right screens and still hand over the wrong records.
  • A backup exists away from the app, and someone has restored one.An untested backup may not restore when you need it.
  • Errors are logged, slow pages are measured and repeated attempts are limited.Without them, the first sign of a problem is a customer telling you.
  • A named person checks routine updates and monitors security alerts, acting promptly on urgent fixes.The parts under the app keep changing after launch.

Accounts and code in your name

Every account the app depends on should be in the business's name, with a business email address. A repository is the online account where the code and its full history are kept. List them before anything else.

  • The repository. The code, in an account the business owns.
  • Hosting. Where the app runs, and the settings that hold its keys.
  • The domain. The registrar account, with auto-renew on.
  • The database. Often a separate service, with its own login and its own backups.
  • Payments. The payment provider's account, and who receives its alerts.
  • Email. The service that sends sign-up and password-reset messages.

If a freelancer or a friend set any of these up, move them now, while everyone is talking. If someone has already gone quiet, start with what to do when your developer left and you can't get in.

Secrets out of the code and its history

Secret keys and passwords belong in the hosting platform's settings, never in the code. A secret is anything that lets software act as you: a payment secret key, a database password, an email-sending key. If one is written into a file, anyone who can read the repository can use it.

Some keys are designed to be public. A payment provider's publishable key, or a database's public client key protected by access rules, is meant to ship with the app. Its safety depends on those rules, so ask which kind each key is.

Deleting the line is not enough, because the repository keeps every earlier version. On GitHub, secret scanning scans the entire Git history on all branches for hardcoded credentials. It runs free on public repositories; for private ones it depends on the plan and settings.

If a secret has been committed, GitHub's guide to removing sensitive data says the first step is to revoke or rotate it. Rewriting the history comes after, and cannot reach other users' clones. So treat any secret key that was ever in the code as exposed, and replace it. Public client keys are the different case described above.

Each user sees only their own data

Access control is the rule that decides who may see or change what. OWASP's 2025 list of web application security risks puts broken access control first.

OWASP says access control enforces policy such that users cannot act outside their intended permissions. One failure it lists, in plain terms: a customer changes a number in the address bar and sees another customer's order.

  1. Create two test accountsUse two email addresses you control, and add a little data to each.
  2. Open a record as the first accountAn order, a profile or an invoice, and note its address in the browser.
  3. Open the same address as the second accountYou should see an error or nothing, never the first account's record.
  4. Try the same while logged outPrivate pages should send you to the login screen.
  5. Repeat for every kind of recordOrders, files, messages and anything a user can edit or delete.

Passing this test is a good sign, not proof the app is safe. The app's server can still answer a request the screens never make, so the rules have to hold there too.

Some apps keep these rules in the database itself. Supabase, one database platform, uses a Postgres feature called row level security. Its documentation says a table in an exposed schema without it is readable and writable by any role with a grant on it. Whatever the app uses, ask where the rule lives.

Data and backups you have tested

Write down what personal data the app stores, such as names, phone numbers and payment references, and which service holds each. Collect only what the app needs.

Then check the backups. CISA, the US government's cyber defence body, advises smaller businesses to follow the 3-2-1 rule. That is three copies, on two kinds of storage, with one kept off site. It also advises scheduled recovery tests, so restore a copy to a private test version of the app and open it.

Rules on personal data differ by country and by the kind of data. This page is general information, not legal advice; confirm what applies with a lawyer.

It holds up under real use

Real users find the paths a demo never took, so the app should tell you when something fails.

A slow page is a problem to measure and fix where it is. If someone suggests splitting the app into many small services, read whether your app needs microservices first.

Someone looks after it next month

The app is built from other people's code, called dependencies, and those keep changing. OWASP advises that you continuously monitor public vulnerability databases for flaws in the components you use.

On GitHub, Dependabot alerts notify you about vulnerable dependencies. An alert only helps if someone reads it, applies the update and checks the app still works. What that arrangement should say is in what website maintenance includes, and what to get in writing.

When you can leave it alone

What a review gives you back

A professional review goes further than the checks above. It tests permissions on the server and the API, not only in the browser, including who can edit or delete records and open uploaded files. It also reads how logins, payments and secrets are handled in the code.

It comes back written up, area by area, each marked fine or pending, with a plain next step. Our support page covers sites and software we didn't build. In its words: "We take those on too, after a short review, so we know what we're taking on and can tell you honestly what state it's in."

Review sheet for a sample bakery's ordering appSample
Address
orders.bakery.example
Access
Pending. The database and hosting accounts sit under a personal email address.
Backups
Pending. Automatic copies are switched on; nobody has restored one.
Updates
Pending. Dependency alerts are waiting, and nobody is named to act on them.
Speed
Fine. The order page loads on a phone with real menu data.
Security
Pending. One test account could open the other's orders by changing the address.
Forms
Fine. A test order reached the bakery's inbox.

Sample only. The six areas are the ones in the sample review on our support page.

After the sheet comes "a written support agreement, or a plain answer if it's better rebuilt", in our support page's words. A rebuild is not the default.

Next step: list the accounts the app uses, who holds each, and what data it stores. Tell us what you have, and we'll say what we would review first.

Questions

Is an app written with AI coding tools safe to launch?

It can be, once a person has read and tested it. The six checks here are a first pass; with payments or sensitive data, add a professional review of the server-side rules.

Who should review my AI-built app?

Someone who can read the code and has no stake in defending it: a freelancer, a development company or an in-house developer. Ask for the result in writing, area by area.

What if a key or password is already in the repository?

Issue a new key with the provider, put it in the hosting settings and switch off the old one. Clean the history afterwards; copies already cloned stay out of reach.

Do I need to rebuild it?

Not by default. Moving accounts, replacing secrets and fixing access rules usually happen in the existing code. Our answer for software someone else built: "Usually, after a short review of what's there. We'll tell you plainly if it's better to rebuild."

Do you use AI tools when you build?

Yes. Our answer on How we work reads: "Yes, to help draft and check code. A person reviews everything before it ships, and your data stays out of AI tools unless you agree."

Sources

Reviewed and edited by Online Scope before publishing. Something out of date? Tell us at info@onlinescope.in. How we write the Blog.

Keep reading

Tell us what the app does, what data it holds and who built it, and we'll say what we would review first.

We reply within 24 hours.

What is it about? Optional, pick any