Why this happens with apps built with AI tools
Your homepage can load fine while the page where people pay or sign up is broken. An uptime monitor, a service that checks every few minutes that your homepage answers, won't notice, because it usually only looks at the homepage.
If you build with Lovable, Bolt, Replit, Cursor or v0, each request to the AI can change more than you asked for. A change to the header can also move a page to a new address or change a setting the app needs. The preview (the copy you see while you build) can look fine while the live site (the copy your customers use) is broken.
Checkout and signup also rely on other services, such as Stripe for payments or Supabase for accounts. Any of them can stop working with your app while the homepage keeps loading.
Lost sales and signups
Everyone who reaches a broken checkout and can't pay is a lost sale, unless they come back later.
Shoppers already leave when a site misbehaves. In Baymard Institute's survey of US online shoppers, once people who were "just browsing" are left out, 17% said they had abandoned an order because the website had errors or crashed (Baymard Institute, page last updated September 2025). That figure covers errors in general, not only a fully broken checkout. When the checkout doesn't load or shows no way to pay, nobody who reaches it can buy.
An example with made-up numbers (put in your own): your checkout page gets 60 visitors a day, 1 in 20 of them buys, and the average order is $40. That's 3 orders and $120 a day. If checkout breaks on Friday evening and you notice on Monday morning, about 2.5 days have passed: 7 or 8 orders, about $300, that you didn't take.
The same sum works for a signup page:
Lost revenue ≈ hours broken × visitors to the page per hour × share who complete it × what each one is worth to you
For a signup page, "what each one is worth" is the share of new signups who go on to pay, times what they pay. A broken signup page doesn't cost one month of revenue. It costs every month those customers would have stayed.
Ad money spent on a broken page
If you run Google search ads, you usually pay for each click, not for each sale. Google's own definition of cost-per-click says you "pay for each click on your ads" (Google Ads Help). While the page your ads point to is broken, those clicks still cost money.
Google does check the pages ads lead to. Its rules say an ad can be turned off if the page it leads to doesn't work properly or shows Google's automated checker an error instead of the page (Google Advertising Policies Help). That is Google's check, on Google's timetable. It isn't an alert to you that your checkout lost its Pay button.
An example with made-up numbers: 10 paid clicks an hour at $1.50 each, sent for 12 hours to a signup page that doesn't load, is $180 spent with no signups from it.
Refund and dispute fees
Sometimes the break is partial. The payment goes through, but the customer never gets what they paid for, such as an account upgrade, an order confirmation or a download. Or they retry a checkout that seems stuck and pay twice.
Those customers ask you for a refund, or they ask their bank to reverse the payment. That second route is called a dispute or chargeback. Both cost more than the sale itself. The figures below are from Stripe, a popular payment service:
- Refunds: Stripe keeps its processing fee (the fee it charged to handle the original payment) when you refund (Stripe Docs: Refunds). Its US pricing page lists 2.9% + 30¢ per successful domestic card payment (Stripe Pricing). So if you refund a $40 order, you give back the $40 and also lose the $1.46 fee.
- Disputes: Stripe's US pricing page lists a fee of $15.00 for each dispute you receive (Stripe Pricing). Stripe takes the disputed amount plus that fee from your Stripe balance (Stripe Docs: How disputes work).
Fees vary by country, so check the figures for yours.
Support time
Each customer who does write in becomes a support email. You read it, test the page, reply, maybe refund, and reply again once it's fixed. For a solo founder, that's time taken from building.
Customers who don't come back
Some people who hit a broken page try again later. Some don't, and you won't see them in any report, because they never became customers. We haven't found a reliable public figure for this for small apps, so we don't put a number on it. It's still part of the cost.
What to check
In every example above, the biggest number is how long the page stays broken before you know. You can't stop every publish from breaking something, but you can find out sooner:
- After every publish, open your live signup, login and checkout pages yourself in a private browser window, not only the preview.
- On checkout, check that the payment form or Pay button appears. Don't pay.
- If you run ads, open the exact page each ad points to.
- Have something check these pages on a schedule, so you don't depend on remembering.
How to find out sooner next time
Heedza opens your live landing, signup, login and checkout pages in a real browser on a schedule: daily on the free plan, or every 60, 30 or 15 minutes on paid plans. It checks that each page loads and shows its form or Pay button. Every plan also checks that your homepage is up (every 5 minutes on Free, every minute on Solo and Starter, every 30 seconds on Pro and Business), and when a new version of your homepage goes live, a full page check runs soon after.
If a page breaks, Heedza sends you a screenshot and a fix prompt, a ready-written request you paste into the AI tool you built with. It never signs in, fills in a form or pays. Checkout checks stop as soon as the payment form or Pay button is visible.
That also means it can't see problems that happen after a real payment, such as Stripe failing to tell your app that a payment went through. Those show up in your Stripe dashboard.
Let Heedza check this for you. Heedza’s payment page check opens your live payment page on a schedule and tells you if the Pay button disappears. It never pays. It never logs in or fills in forms, so it can’t see errors that only show after that.
Made with Lovable, Bolt, Replit, Cursor or v0? Free for 1 site: start free or see prices.