Patrick McKenzie+ Your Authors @patio11 I work for the Internet, at @stripe, mostly on accelerating startups. Opinions here are my own. Sep. 10, 2020 2 min read + Your Authors

We've been hard at work on improving the Checkout experience.

Try it out at  ; it will create a mockup for your use case (e.g. typical SaaS plan) and let you see what the UX looks like a typical user in several countries.

Checkout (and for SaaS companies our customer portal:  ) tries to move as much of the silly cruft of getting the business running to us, so that you can focus on talking to users, building product, and delighting people.

Back during my consulting career I fought like heck to get companies on a cycle of testing and refreshing their checkout flow quarterly. Almost nobody managed to do this. When we looked at git logs, most people hadn't touched it in years.

I get it, believe me: there's always something more pressing to do in the business, and it is usually more fun than *blows horn* form field data entry optimization woooo.

(There are also formidable institutional issues with assigning engineers to care about that sort of thing.)

Because Stripe has millions of businesses using us and because your success in aggregate is our success, we can justify putting teams of very talented people on the optimization of Checkout every day of the week.

This covers table stakes things which oddly aren't table stakes. Why are checkout flows so #%()#%) bad?! Why would *anyone* force you to declare your credit card type when it is inferable from the freaking number? Why isn't the number typo checked in real time?

We did all that.

But we can go layers beyond that. Things that most companies will say "Uh, edge case, WONTFIX" due to engineering effort required are things we will see thousands of time per day.

Do you sell SaaS internationally? Got any users in Japan? Cool. A surprising portion of them will have *any* checkout break the first time they use it because their IME is set to zenkaku and so their credit card number will look like 4242424242424242.

If your team hasn't special cased that, and if you do not have an engineer living in Japan I will bet at 1000:1 odds that you have not (go try it if you don't believe me), you'll give the same error you would give if I typed "MY CREDIT CARD" into that box.

We just do the right thing automatically.

Got users in Europe, who are now covered by the Strong Customer Authentication standard, and whose banks may decline transactions if you don't have a special code path covering that interaction? Checkout already has it done.

And the cool thing is, as the world gets more complicated over the next 5 years, the payments-related complexity lands on us rather than you.

When SCA launched *a lot* of businesses suddenly had priority:critical engineering tickets filed to do complicated low-value work.

For a variety of the unknowable things the future holds, you'll never even see that ticket. Some team at Stripe will have implemented it long before anyone at your company discovers that it is a new regulatory requirement (or new wallet making waves in Southeast Asia, etc).

More details (and, of course, a live demo) here: 

You can follow @patio11.


Tip: mention @threader_app on a Twitter thread with the keyword “compile” to get a link to it.

Enjoy Threader? Sign up.

Since you’re here...

... we’re asking visitors like you to make a contribution to support this independent project. In these uncertain times, access to information is vital. Threader gets 1,000,000+ visits a month and our iOS Twitter client was featured as an App of the Day by Apple. Your financial support will help two developers to keep working on this app. Everyone’s contribution, big or small, is so valuable. Support Threader by becoming premium or by donating on PayPal. Thank you.

Follow Threader