+twilio - doing it right
As you'd expect for an email provider, over at +FastMail
we have to deal with spammers. While we don't have a free account, we do have a free trial, which spammers like to use to sign up throwaway accounts to send spam. Meanwhile our sister service My Opera Mail (which runs on our infrastructure) has always had free accounts, and is heavily used by spammers.
So last week we added SMS verifications to My Opera Mail. You've seen it before - you create an account and get asked to enter a phone number. We SMS you a code which you enter into a web form, and your account gets activated. For us "activated" means "able to send mail". This is a trial; the intent is to soon add it to FastMail proper for new trial signups. You'll verify there with either SMS or a credit card.
The effect was immediate. Spam account signups almost entirely disappeared. We were happy. But then we started hearing problems of legitimate users signing up and never receiving their verification SMS. We looked into it and discovered that our SMS provider was having a lot of trouble delivering to numbers in the US and Canada. We don't really know why, but clearly it couldn't go on.
A member of our team suggested +twilio
. In his own words, they seemed to be "the startup leader in the web/phone bridging connectivity space", which I translated to "all the cool kids are doing it". His email with that suggestion arrived in my inbox at 2.47pm. At 4.36pm I switched our verification backend to use Twilio.
Now I should emphasise that I had never heard of Twilio before. I had never seen their API. But that didn't matter, because their entire sign-up process was a breeze.
I loaded up the site. Within a few minutes I had read and understood their pricing and their API. Its very powerful yet the simplest thing (sending SMSes) is simple
, and they make it dead easy to test.
The entire sign-up process is trivial - enter an email address and password and do a SMS verification (wonderful to see that they have enough confidence in their service to use it for the very thing we're struggling with). With account created I'm able to use their API via curl (with plentiful examples) to send as many messages as I like to my own number. All this has probably taken about five minutes and by this time I've decided I want it.
Next comes actually paying for service. I grab the office corporate credit card, enter the details, and I get offered a suggested starting amount of $20, with automatic top-ups of $10 enabled by default. These are perfect defaults - we're in a hurry, and now we don't need to worry about running out of credit. (We probably will keep a decent balance on there to avoid currency conversion fees, but that's not important right now).
All paid up, now I get their pretty dashboard, with a whole bunch of things I can press and test and tweak. But I don't care, because by this time I have everything I need. Docs in hand, it takes an hour to add a new provider class to our backend, add a new callback endpoint, and another half hour to test and deploy it. Job done.
So the point of this post is to not only tell you that Twilio are awesome, but also to tell you to copy mercilessly from them if you're designing your sign-up process. Within fifteen minutes of hearing about them I'd figured out what the service was about, what it cost, how hard it would be to integrate into our app and paid for it. At no point did anything get up in my face about anything.
That's how you do it.