My new project: Tact, a simple chat app.

Twitter read/unread state, campaigns, and priority contacts

December 01, 2009

Twitter is interesting because it is a new protocol. In connection with that, I’ve recently thought about three things that illustrate the questions it goes through as it grows.

Maintaining read/unread state

(Mentioned it previously, but it was so low nobody got to it, hence this new post.)

… or, more precisely, this is about maintaining “last read” position in your Twitter stream. I don’t think people will want to selectively mark stuff read and unread as you’d do with, say, email. But it is important to keep a pointer to what I’ve seen, so that it would be easy for me to tell the new stuff from old.

(Aside: read/unread would be one way to mark stuff as “to read later.” Currently, some people use favorites for this. Not a bad idea. But neither favorites nor read/unread are really for this purpose. Maybe we need something yet new…)

Currently, clients do this on their own, but do not share this data. For example, Tweetie exists on both my desktop and iPhone, but I still see the same messages twice. Nevermind other clients or itself.

One solution would be to create a third-party site to offer this as a service to clients. I don’t know what their business would be, but you can imagine clients sharing this data. And it can be with or without authentication. With, it’s secure but annoying. Without, you could find some downsides in privacy, but you could package the data up and offer it to the community. Who reads what and when? Is this sort of metadata privacy-intrusive? I don’t know. I myself wouldn’t care. (If I was more agile, I’d have the service running by now, it’s a few simple calls… basically setLastRead(user,lastReadId) and getLastRead(user) and that’s it.)

But really, this should be part of Twitter API, similarly to how your IMAP email, Skype Chat and Google Wave can keep track of what you’ve seen and what’s new.

Product vs platform

Today’s campaign was interesting. Some tweets are shown red on based on certain criteria, but this does not come through to any clients.

This illustrates the tension between Twitter being an end-user product and a platform. As a product, you can promote any cause you want. As a platform, you should be content-neutral and removed from any such activities. Furthermore, you should be predictable and not repurpose users’ content in ways that are not agreed upon. Maybe I am all against the red color, why are you forcing it upon me? Maybe I was using #red hashtag as “Rocket Engine Designers” and don’t care about your initiative?

Priority contacts

Here’s a great video. Currently, Twitter contact lists are flat. If you’re like me with a few hundred contacts, you miss a lot of the activity. And for some of it, it’s OK: some people are more entertainment/ephemeral value and it’s OK to not see everything. For some, though, I really care about what they have to say, and would like to prioritize them to always come through. Current Twitter API typically gives you 200 messages at a time: I’d like to tune it so that I’d rather miss some tweets from the ephemeral people than be shown everything.

You could repurpose lists so that you could make a special list with your priority contacts, but here’s the thing: I don’t want my priority contacts to be public. This would reveal connections and interests beyond what I care to disclose.

This sounds like something that could start as a client feature and later graduate to the API if it’s really valuable. Hmh, where’s that pet project of mine… everybody must have their own Twitter client, right?