Skip to content

One click, two charges

AI-built forms rarely stop a double click, so a slow Pay or Create account button can mean two charges or two accounts. Two small fixes and a quick test.

AI-built forms rarely stop a double click. On a slow connection, a user taps "Pay" or "Create account," nothing seems to happen, so they tap again. Now there are two Stripe charges, two accounts, or a "this email is already taken" error on a signup that actually worked.

Two small fixes cover most of it. First, disable the button and show a spinner the moment it's clicked, and only re-enable it if the request fails. Second, make the server safe to call twice: send an idempotency key with Stripe requests, and treat "user already exists" right after signup as a success, not an error.

Test it right now: throttle your browser to "Slow 3G" in dev tools and double-click every submit button you have.

Want your signup and login flows watched for you? Start with a free check at FunnelSitter.