Bolt

Bolt shipped the UI. The deployed path is a different app.

The preview runs in a temporary environment with its own secrets and its own URL. Customers hit the deployed host, which often never received either.

Bolt is a fast way to assemble a checkout or a signup. The failure mode is the gap between the preview, where the chat can see your keys, and the host that actually serves the domain.

Point a free uptime check at the deployed URL. Map the signup or checkout on Pro so a publish that drops the form action does not wait for a customer email.

What usually breaks

Secrets that never left the preview

The Stripe secret and the Resend key were available while you clicked around the preview. The deployed project has empty env vars, so the button submits and the server cannot start a session.

Webhook URL still on the preview host

Stripe is sending events to the bolt.new or preview URL you registered first. That host is gone, or it is a different deployment. Production never hears about the payment.

Server code with nowhere to run

A route that executed inside the preview has no equivalent on the static host you deployed to. The form action 404s. The page around it looks finished.

A hardcoded test price

The price id was copied from a screenshot in the chat. It matches test mode only. Live Checkout refuses it after you flip the keys.

A form that posts to a deleted route

A later prompt renamed the action. The button still says Continue. The network panel shows a 404, and uptime on the homepage stays green.

Watch the next break before a customer does.

Free checks the public URL. Pro replays the path after you verify the domain.

Related