All in the <head>

– Ponderings & code by Drew McLellan –

– Live from The Internets since 2003 –


A Consistent User Experience

12 March 2011

Yesterday, Twitter announced a change in the Terms of Service for API use and pretty much told developers that they shouldn’t be building Twitter clients. The reasoning given for this was that with so many users of the service, different clients offer different ways of interacting and could therefore confuse users. (Won’t somebody think of the children!)

One of the things I really admired about Twitter was that it was built as a true web service. Twitter isn’t a website, it’s a service into which you can place tweets and out of which you can retrieve tweets. As Tom would put it, it was native to a web of data – and a perfect example of a true service and not simply a website with an API bolted on.

To get users started and support light use, sported a simple web client for accessing the service, which was perfectly adequate, if basic. Any serious user of the service could use one of the many Twitter clients to interact with the service via its API. It worked well because Twitter could concentrate on the core service (which, due to its popularity and growth has been an enormous undertaking in itself) and let third parties focus their efforts on building great client software. It was absolutely beautiful, and I still consider this as a template for how web services should be built.

Putting to one side the fact that Twitter is not a distributed service, this was in most other respects the way many other internet technologies have become so successful. Any web browser that can speak HTTP can connect to a web server to access a website. Any email client that knows POP3 and SMTP can connect to an email server and start enabling the user to send and retrieve emails. More advanced users might choose an email client that uses IMAP. Your email server doesn’t need to care about the user experience offered by the client software. It doesn’t care if the client is a GUI app, a command line script or even some other sort of server. And so it is with Twitter clients and the service itself. This allows for enormous flexibility, opportunities for developers, and fantastic user choice.

That’s why I did think it was odd when Twitter bought up the company behind the Tweetie client for OS X and iOS, and then channelled considerable effort into a new version of their default web client at I had put the Tweetie acquisition down to acquiring a talented developer, and I guess it does make sense to have the default Twitter experience on the site to be as good as you can make it. But the effort did feel misplaced.

Now it has become clear that Twitter wishes to own the entire user experience by having everyone using an official client, in a move akin to CompuServe requiring customers to use their official email client. (Remember them?) Or a website only working in Internet Explorer. (Remember those, also?)

I’m not in a position to predict what this means for Twitter as a company, for the popularity of the service, or anything of that nature. I suspect it will merely annoy a lot of the early adopters (who are an absolutely insignificant number of users), annoy a lot of developers, but we’ll all carry on using Twitter regardless. However, I do think it’s a massive shame for the industry as a whole. The perfect example of a company who understood how to be native to a web of data has gone. And gone in a way which suggests the model has somehow failed. But the model hadn’t failed at all. It was flourishing.

I can only presume that due to commercial requirements the official clients will be introducing features (such as ads) that users won’t necessarily like. Any move of that nature would be undermined by users having a viable choice of alternatives to switch to. Which would make sense, and is perfectly understandable. Twitter is a business. It’s just a shame they had to conduct the changes in such a way, and try and pin the change on a technical approach which was working magnificently.

- Drew McLellan


  1. § Rob:

    It’s safe to mark this as “the beginning of the end” for twitter. It’s an amazing service, but this will motivate developers to seek and support other parallel but ultimately different services that provide a similar experience. This may seem like an absurd overreaction, but I am only saying mark this as the beginning, it’s definitely nothing that that will crumble over-night.

  2. § Paul:

    I think you’re comparing apples and oranges here. Web technologies like HTTP and e-mail aren’t owned by individual companies or funded by VCs expecting a return on their investment. Would you really describe a venture that is millions of dollars in the hole with no profits as flourishing? I think the model has failed. And it’s failed because building, and more importantly, sustaining this kind of ecosystem is nigh on impossible with VC money. I suspect the way to do this properly is open source. Look at what Automattic has done with Wordpress for a great example.

    That said, I agree with the main thrust of the post. It is a shame that Twitter has taken this particular course of action. Like many of their ‘monetization’ attempts it seems clunky and unnecessary.

  3. § Drew McLellan:

    Web technologies like HTTP and e-mail aren’t owned by individual companies or funded by VCs expecting a return on their investment.

    Right, that much is obvious. I was comparing the aspects which are similar, as they were the more relevant.

    Would you really describe a venture that is millions of dollars in the hole with no profits as flourishing? I think the model has failed.

    The model I was talking about was that of a web service for which anyone can build a client – not Twitter’s commercial model.


Work With Me logo

At we build custom content management systems, ecommerce solutions and develop web apps.

Follow me


  • Web Standards Project
  • Britpack
  • 24 ways

Perch - a really little cms

About Drew McLellan

Photo of Drew McLellan

Drew McLellan (@drewm) has been hacking on the web since around 1996 following an unfortunate incident with a margarine tub. Since then he’s spread himself between both front- and back-end development projects, and now is Director and Senior Web Developer at in Maidenhead, UK (GEO: 51.5217, -0.7177). Prior to this, Drew was a Web Developer for Yahoo!, and before that primarily worked as a technical lead within design and branding agencies for clients such as Nissan, Goodyear Dunlop, Siemens/Bosch, Cadburys, ICI Dulux and Somewhere along the way, Drew managed to get himself embroiled with Dreamweaver and was made an early Macromedia Evangelist for that product. This lead to book deals, public appearances, fame, glory, and his eventual downfall.

Picking himself up again, Drew is now a strong advocate for best practises, and stood as Group Lead for The Web Standards Project 2006-08. He has had articles published by A List Apart, Adobe, and O’Reilly Media’s, mostly due to mistaken identity. Drew is a proponent of the lower-case semantic web, and is currently expending energies in the direction of the microformats movement, with particular interests in making parsers an off-the-shelf commodity and developing simple UI conventions. He writes here at all in the head and, with a little help from his friends, at 24 ways.