The problem
Someone pays an agency for a website. A year later it feels slow and the phone is not ringing, and they have no way to work out whether that is the site or the market. The people who built it are not going to volunteer that it is broken, and a performance score out of a hundred means nothing to a person who runs a landscaping company.
So they either live with it or pay somebody else and hope. Both of those are bad outcomes, and both of them happen because there is no honest second opinion available at a price a small business will pay.
What I built
Hand over the address. The site checks what you paid for and reports back in language a business owner can act on: what works, what does not, and what it would take to fix. The diagnostic is free, because the report is the pitch.
From there the routes are fixed price. Individual repairs for a site worth saving, care plans for the ones that need watching, and a full rebuild for the ones that are past it. Nothing starts without the price agreed first.
How it holds together
Next.js on the front, Convex behind it, Stripe for checkout and subscriptions, Resend for mail. Development and production are pinned to separate Stripe modes so local work physically cannot charge a real card.
That separation exists because of a real near miss. Building production once from the local environment file pointed the live site at the development backend, which carries test keys. Every page still returned 200. Nothing looked wrong anywhere. Checkout had simply and silently stopped being able to take money, and the only reliable way to catch it is to read the backend URL out of the built JavaScript rather than to load the page and see that it works.

