Sometimes I get these, well, hankerings.
I get an idea for what usually is a stupid, silly thing, and I feel compelled to work on it. This past weekend I had another “episode” and the result is breaktheicefor.me. (Coming up with a domain name is hard! Why do I even try anymore. My next project will live at [latest git commit id].com – 4654bab.com)
I read about the beertext.us guys, and their super-simple-yet-useful SMS-based app they put together that tells you about the beer you’re drinking. For some reason that I don’t recall I instantly thought about making something similar but for conversation starters. I was probably alone at the moment, wishing I was with a group of people, feeling sorry for myself.
Doing some quick searching showed:
- No existing SMS-based conversation starter services (that I could find)
- A few iPhone and Android apps, some free, come that cost $
- No public datasets to pull from
I ignored the last two bullet points, focused on the first one, and said “Sweet. The world needs this. And it’s up to me to build it.”
Step 1 – Get a number
In the past, this would’ve been the hardest part of the app. Today, with services like Twilio it becomes the easiest.
Sign in to Twilio, purchase a number, and point it to your URL that handles voice or SMS. Bam. Done.
Step 2 – Spin up a Sinatra app on Heroku
For small apps, or APIs, I freakin’ love Sinatra. Add Heroku to the mix and you’ve got the closest thing to heaven a someone like me with only 30 minutes to spare can get. If you don’t know about them, google it, plenty of info out there.
Step 3 – Hook up SMS
I can’t emphasize to you how easy Twilio makes things. Seriously, they are one of my canonical references for a developer-friendly API. When you get an SMS, you can reply simply by returning a 200 response with Content-Type of text/plain, and the body is the response message. You can get fancier with it (using XML to send multiple response messages, etc.) but SERIOUSLY. That’s IT. When’s the last time an API was that easy to integrate with?
And no, I don’t work for Twilio, I don’t get paid by them, in fact I work for a different telephony company so perhaps this is blasphemy. (Different market segments, different targets and audiences, so no big deal. I hope.)
Step 4 – Stand up a single-page website
Again, Sinatra, makin’ things easy for me. Add something like Twitter’s Bootstrap (or whatever other grid/typography framework you want), Google’s Web Fonts (for the love, people, at least customize bootstrap a little), a little jQuery form submit hooked into SendGrid email sending (database? What database?) and #! (shebang! I always thought that was a great way to start a file) you’ve got a simple landing page.
And that’s it! It’s taken me longer to write this post than it took for me to do steps 1-4. SERIOUSLY.
Then I published my app and made tons of cash from it.
Oh wait, except it has no actual content. Yeah, there’s that. Well, I said I’ll deal with it later — I did say that, didn’t I? — and now’s that time.
Step 5 – Content
When I was doing my initial quick-and-dirty research, I came across Chatoms, an app by the good folks at Iconoclast Labs. They even have a RubyMotion vs. PhoneGap smack-down that creates… you guessed it… a mobile conversation stater app. And they have a curated dataset of ice breaker/conversation starters!
I reached out to them to talk about options, and they graciously agreed to give me their dataset. WOW. Talk about classy.
While we were communicating back and forth I remembered what my friend Brandon Corbin told me once about his experiments with Amazon’s Mechanical Turk. In a nutshell, Mechanical Turk is “artificial artificial intelligence” – it’s an interface (and an API) for automating tasks that are performed by humans.
So I signed up, funded my account with a few bucks, and set about creating a simple form people could use to submit an “Ice Breaker”. Here’s what I created, basically:
With Mechanical Turk, you can choose options regarding who’s allowed to perform the work (they have to have N-approved tasks in the past, etc. etc.) and you can choose how much you’ll pay per answer. I ran several tests with small numbers of people (2-5) at various price points and “quality” restrictions to see what gave me good bang for the buck, and I settled on 15 cents per answer. I threw a few dozen bucks at it, and ended up with a pretty nice sample of ice breakers.
Some were duds, for example some people answered my example questions. (Um, yeah, not so much. “yes, no, no, yes, yes”) but the nice thing about Mechanical Turk is that I get to accept or reject answers, and I only pay for what I accept.
So, now, I had some additional content – sweeeet.
Step 6 – Profit!
Okay, there is no profit to this. In fact, it costs me every time someone sends or receives a text message through this. But that’s a price I’m willing to pay, at least for the short term. If it becomes popular, which I pretty much guarantee it will, because the world needs it, then I’ll explore options. Until then, I hope you enjoy it.
Interestingly, I actually had a few opportunities to use it after I made it, and it actually. worked. Conversations were started. People talked and engaged. I grew hair back over my bald spot, and my runaway dog came back home.
I was shocked. Of course I fully expected this.