I love foreign languages, and I've been searching for ways to practice my language skills in a way that's as convenient and easy as possible. I'm also busy and don't want to install or learn different tools and apps just to keep up with my languages.
One day, I was playing with the International Keyboard settings on the iPhone, and I was texting with some friends using different foreign alphabets. Then it hit me: With the increased prevalence of mobile phones and SMS over landlines and handwritten letters, it's time that the tradition of the "pen pal" be modernized as well. That's when SMSPal was born. I wanted to continue to practice my foreign languages but with new people and help others experience that joy as well.
SMSPal aims to facilitate connection and learning through text messaging. It allows people to practice and improve their foreign language skills by connecting them with pen pals from around the world over SMS. The system automatically pairs people up and is fully anonymous, so people never have to give out their phone number to each other (they just text a special SMSPal phone number, and SMSPal relays the text message over to their pen pals automatically).
The Twilio API (and Python wrapper) ended up working pretty well, after getting past an initial authentication hiccup. I couldn't get the callback and "action" parameters to work, though, on the SMS TwiML response, so I settled for combining their TwiML and their outgoing SMS APIs to get the thing to work. Working on the state machine for this was fun as well. I also got to know the Django test suite API; my SMSPal code is ~600 lines but the tests are about ~1,200, and that's a ratio I'm proud of.
Give it a try, and let me know what you think.