UPDATE: @SanMo is now using Chris Finke’s implementation in Python.
@SanMo is a Twitter based service I launched in late January. It’s designed specifically for Twitter users in the Santa Monica area. Anyone can send a message starting with @SanMo and the bot will retweet it. The idea is that locals who want to participate will follow @SanMo and then respond to the inquiries.
To build the initial community, I used Twitterholic to find the top Twitter users in Santa Monica and then manually followed them. I also used Twitter Search to find people in my ZIP code and then followed them. Since the launch, I’ve also made use of Twitter Perch to autofollow anyone that says “Santa Monica”.
I had my Hacker Drinkup friends submit many of the early tweets to encourage use of the service. Although I originally imagined it for things like restaurant recommendations, there’s been a large variety of tweets: providing earthquake info, solving service issues with the local ISP, and even discussing local stimulus spending.
My favorite moment so far was @shephardfx mentioning that he was taking a trip to Santa Monica the following week. Twitter Perch followed him automatically. When he arrived, he used @SanMo to get sushi recommendations.
@SanMo is based on @whitneymcn’s Perl script that powers “lyric of the day” on Twitter. A cron job checks for @ replies every two minutes. It takes the reply, removes the @SanMo, adds an RT and sender name, and then stores it in the database queue for posting.
It’s been running fairly flawlessly, but such a minimal interface can be difficult for the user. If you don’t put @SanMo at the beginning of your tweet, it won’t be retweeted. This is a partial feature, since it lets you talk about @SanMo without pinging all the followers. Where it becomes an issue is when someone @replies the asker and follows that with @SanMo; it won’t get retweeted (the inverse isn’t an issue).
The other problem is that tweets can get truncated when retweeted. @SanMo is most likely shorter than the user’s handle. The RT, space, and trailing colon take up precious characters as well. Context keeps most of these readable, but there’s a high likelihood that it will destroy a URL. Other services solve this by creating a shortened URL to connect to the original content. I don’t think this is necessary and just adds another hoop. I’ll probably implement in_reply_to_status_id so users can find the original tweet instead.
That’s the only feature I’ve got planned and I’d probably only tackle it with a complete rewrite of the script. The only other thing I feel is missing is a way to intelligently archive/thread the conversations.