The AI tool is the easy part
Lovable, Bolt, v0, Claude, Cursor — whichever one you're using, prompt-to-app builders are genuinely good at scaffolding UI, wiring up business logic, and getting something clickable in front of you fast. That's real progress, and it's not the part of this list you need to worry about anymore.
A backend your app doesn't outgrow
Every app that stores a user or a row of data needs an actual backend underneath the generated frontend: a database, authentication, and somewhere to host it. Most AI builders bundle one for you automatically, usually Supabase running behind the scenes. That's convenient on day one and easy to lose track of once usage-based billing kicks in and the bill for "the same app" quietly changes month to month.
Backups, before you need them
An agent that can generate a schema migration can also run a bad one. Free-tier backends often skip daily backups entirely, and Point-in-Time Recovery — the ability to roll back to a specific hour instead of just yesterday's snapshot — is frequently a paid add-on rather than something that's just on (on KoedoDB it is on for every plan). Decide how far back you can restore before an agent deletes something you needed, not after.
Security you didn't explicitly ask the AI for
Generated code tends to optimize for "it works," not "it's safe to run against real data." Row Level Security left off a table, a secret committed straight into the repo, an API key sitting in client-side code — none of these stop the demo from working, which is exactly why they're easy to ship without noticing.
Performance you don't notice until it's slow
Generated queries rarely come with an index attached, and a component that fetches its data in a loop works fine with three test rows and falls over with three thousand. The other common failure is simpler: enough concurrent users open the app at once that the database runs out of connections, because nothing in front of it is pooling them. None of this shows up in a demo. It shows up the first time your app gets shared somewhere.
A domain and a deploy path you control
A preview URL is fine for showing a friend. Shipping to actual users means a custom domain, TLS that renews itself, and a deploy process you understand well enough to debug at 11pm — not just the one button the AI builder gave you.
A budget you can say out loud
"It depends on usage" is not a number. A stack like KoedoDB Hobby at $7/month plus Claude Pro at $20/month puts your AI usage and your backend on two separate, fixed bills — so you always know what the app costs before the invoice tells you.