Ever since PDC, I’ve been struggling to figure out how a community project can compete in the Twitter space in this day and age. Up until recently, Tweetdeck was the defacto Twitter client, with a few people going on about Tweetie on something called an iPhone. A lot of others were around the place, fighting for airtime. But then Seesmic gets a few moments on stage during a keynote, scoring a bunch of free publicity for their app – which was a preview demonstrating the fact that they rewrote it as a native Windows application.
Where was the innovation?
This may come across as me venting at Seesmic, but its more a vent in general at how someone can differentiate themselves in such a noisy industry – an industry where an update for a product client generates an absurd amount of news articles on top of the Twitter noise. After all, this isn’t something I do for a day-job. Its a side-project that a few friends work on whenever they have spare time. How can we even compete against full-time employees, venture capitalists, and tech influencers for mindshare?
What project am I talking about? MahTweets. A extensible client in WPF for microblogging and uploading content that started out as something we wrote for ourselves, and is something we are sharing with the community. Sounds like just about every other client out there, I bet.
Let me discuss how we differentiate ourselves from the rest.
A Truly Open-Source Client
Anyone can download the source, explore its internals, and customise it to suit their needs. We’ve had upstream patches submitted from people who want to tweak the user interface, (theming is something that we support for plugins, the full UI is a lower priority).
A client that is free as in beer is one thing, but ultimately you’re at the mercy of the company resolving any issues you encounter. If you’ve got some developer skills (or are just curious about code) why not download the code and browse it yourself?
Plugin Support Available Today
MahTweets supports Twitter and Facebook out of the box, along with support for a number of other syndication services (Flickr, 12seconds, Twitpic, RSS). We’d love to talk about what is in the pipeline, but we’re hard at work polishing the user experience and the plugin architecture for the next release, so that other people can come in and write their own plugins.
One of the most interesting features we have (and have barely scratched the surface of using) was the Status Handler pipeline. No other platform client I’ve come across has good support for writing handlers. We did a proof-of-concept version for TechEd AU that had support for Ruby plugins using the upcoming Dynamic Language Runtime, which translated status updates into LOLwords - I thoroughly enjoyed hearing people see their tweets turned into something out of ICanHazCheezburger.
A Better (and more personal) List Implementation
One of the use cases that Loic uses as a motivator for plugin-based architecture is support for custom behaviour. He uses an example of an “temporary unfollow” to ignore the noise that someone is already. Of course, the user wants it specifically for Twitter.
We identified this frustration early on and built what we call “streams” – giving the user full control over what appears in each list, so they can make changes on-the-fly. The streams are persisted when you close the app, so there’s no requirement for you to use Twitter or use Facebook. This is our own implementation – you can filter based on account, message, contact or any combination.
Clients don’t seems to care about good filtering, yet its something everyone wants
We’re making it for you (any incidental fame is just a bonus)
The current incarnation of MahTweets started out over a few tweets between myself and Paul – discussing how we might build a client which supports plugins. We wanted to have plugins at the core so that others could take our initial work and go further. It really sucks that all the others are finally “getting” this desire for people to customise their client, when this was something that we wanted from the start.
A lot of what we’ve done in terms of features has been driven from our users. Little things can often make or break the experience for a user (we’ve seen both sides of that) and its what drives me to do more. Here’s some recent ones I’ve found on Twitter:
“Did I just see mahtweets do geotagging? NICE!” - source
“Now that I'm getting used to it, I'm beginning to dig #MahTweets. Slick interface and nifty animations.” - source
“I like #mahtweets and its use of #MEF - I have written an extension myself.” – source
“@airliebee you running it on a personal machine or a work one? If it's yours, give @aeoth's MahTweets a spin. Best Windows client evar! :)” – source
Wrapup
This was never about being #1 in popularity in the Twitter space. I wanted to see the guys behind MahTweets get some recognition for their hard work over the past few months. I know Paul has looked at a shitload of Twitter clients over the past months, to see what everyone else is doing and where they fall down, and he’s done an incredible amount of work on turning out something incredible (why lie - he’s the overlord and the main driver of this).
So how can we push the competition further and get a bigger voice in the field when we’re struggling to be heard above the noise of the interwebs? I’d love to see Tweetdeck or Seesmic move in a direction which is more driven by plugins – they have been talking about this, but I don’t believe they’re close to the flexibility and control that we have currently.
What are your thoughts?