Twitter for Mac is dead. After years of neglect, Twitter has finally put its Mac app out of its misery. This is our post-mortem on what happened, what went wrong, and where the Mac community goes from here.
Subscribe to VECTOR on YouTube
Prefer to listen rather than read? Hit play on the podcast version:
Gruber: I don’t even remember what we’re supposed to talk about.
Rene: Twitter for Mac.
Gruber: [laughs] What?
Rene: Twitter for Mac. Remember Twitter for Mac?
Gruber: Ah, that’s a good topic. Yeah, that’s a great topic.
Rene: They canceled it. They murdered it. They took it out back, and they disposed of it. You’ve been talking about the larger theme of apps on the Mac for a while, but Twitter, I think, is something that’s been near and dear to all of us. What was your reaction?
Signs of Twitter for Mac doom
Gruber: I wasn’t surprised, because the writing’s been on the wall for a long time that they’ve never really, or at least in recent years, they have not really put significant effort into the native Mac client. I think the most significant tell — and I’m going to forget which year was which — there was a year where Apple added system level integration with Twitter accounts.
That Mac OSX, which was the name of the OS at the time, you could enter your Twitter account in system preferences, and set what kind of notifications you want. Do you want notifications for DMs? You want them for mentions? Blah, blah, blah.
Then, you’d get these notification center notifications at the system level. I thought the big tell was that, even if you had the official Twitter for Mac client installed, when you clicked on one of those notifications, it would always open the Twitter website.
I can’t think of any other app or service I use where, if you have a native client installed, usually, that’s where the notifications come from, is the native client. Why in the world would you not want this? I remember asking around, and somebody at Apple told me, more or less, “That’s the way Twitter wanted it, and that was that.”
Rene: You understand Facebook, because they have no native client. Twitter had a much better option available.
From Tweetie for Mac to Twitter for Mac
Rene: Twitter for Mac, it was originally, if I recall, Loren Brichter made Tweetie, and then he made Tweetie for Mac, including Twui, which was his version of UIkit written, I’m assuming, in OpenGL [laughs] for the Mac. Then he got bought by Twitter, and that became Twitter for Mac.
Gruber: I think so. Somebody on Twitter, there was some speculation, or just recollection of the timeline where I think Tweetie for Mac 1.0 was not written with Loren’s Twui UI kit, whatever. 2.0 was, but 2.0 was the first one that came out after Twitter acquired it.
I don’t know that Tweetie 2.0 ever shipped. I think by the time it was going to be Tweetie 2.0, and it turned into Twitter for Mac 1.0. That was the one that was written with Loren’s crazy UI Kit. We could just go ask Loren, I guess.
Rene: Loren Brichter, you created Twitter for Mac, back when it was Tweetie for Mac. What made you want to make a Mac Twitter client?
Loren: It’s super simple. I needed a Mac Twitter client. I use Twitter on my Mac a lot. I used Twitterrific. Twitterrific was the only show in town. It was an awesome app. The problem was, I had three Twitter accounts, and Twitterrific only lets you use one at a time.
It just drove me nuts, signing out and signing back in. It’s like a pet peeve. I needed an app that let me use three Twitter accounts at the same time. That’s it.
Rene: You couldn’t just make an app, either. You made Twui. Is it twee? Is that the way you pronounce it?
Loren: That was for version two. Version one used AppKit. It was almost a normal Mac app. It was a little weird. There was some unconventional UI stuff. That’s the only reason I made it. I needed it for myself.
Rene: Your reason you went to Twui was just to make it easier to maintain cross-platform?
Loren: No, basically, writing Twitter for Mac, or Tweetie for Mac 1.0, I wrote it in AppKit. By the end, I was just banging against the calls. AppKit had a very low ceiling for doing anything even remotely interesting.
UIkit was like this new thing. I thought it had some good ideas. I was like, “I’m going to just make a UI framework inspired by UIkit, and build an app based on that.” That let me do some other cool stuff.
Rene: You didn’t write it purely in OpenGL? [laughs]
Loren: No. I wasn’t that crazy yet. If I did it today, yeah, I’d probably do something like that. No, but I wrote it on top of Core Animation.
Gruber: While Loren was doing it, it was under active development. It was forward-thinking. It was not like a generic COCO UI elements app, which wouldn’t necessarily be a bad way to do a Twitter client. It was a little nonstandard.
It’s easy to get mixed up, as we talk about native apps, what’s good about native apps, and then talking about standard UI controls and nonstandard UI controls. There’s a mushy middle there, where you could have a truly native app, where it’s not just a web view in a container, but it’s nonstandard in ways that would provoke, let’s say, a debate.
Twitterrific for Mac… from the shower
Rene: Even before Twitter for Mac, mutual friend Craig Hockenberry had made Twitterrific for Mac. I think he claims he got the idea in a shower.
Craig: It’s true. God, it’s been so long ago, I don’t even remember what year it was. It was quite a while ago. It was at the beginning of Twitter, when we were all trying to figure out what it was. Some people had done some widgets.
In fact, a guy I know, Ben Ward, had written a thing called Twidget, which was just basically a widget for the Mac OS dashboard, back when Mac OS dashboard was a thing. He wrote that, and I was like, “Yeah, that’s kind of a step in the right direction, getting it off the Twitter website.” I thought, “You know, it’d be better to have an app to do that.”
I was literally taking a shower [laughs] and thinking, “It wouldn’t be that hard to take a table view on the Mac, hook up some of the networking classes, and grab some stuff from Twitter’s brand new API.” The API was probably a month or two old. It wasn’t something that had been out very long.
In a day, I had something that worked. In a week, I had something that did what we wanted it to do. Then a couple more weeks were spent doing the design of the app, and just taking…Basically, I built a prototype in a week. We all were like, “Oh, yeah, cool.” That was the first version of Twitterrific.
Rene: That’s what I was using, because the native experience was much better than the Twitter website, always has been much better.
Craig: It just felt more efficient to read. It just felt like all these shortcuts, you can get them to work in a web view, like using spacebar to page down in the view, and drag and drop being able to just drag, tweet, if you wanted to, copy the tweet into an email or something like that.
All the things that you would think, that’s the whole point of native software, to me, is that. You can say, “Well, keeping talking, old fogy,” but it really does date back to the original Mac in 1984, where there was a set of standard ways to do things.
Prior to the Mac, in the DOS world, and in the Apple II world, every app had different ways of doing everything, from selecting text, to saving files, to opening existing files. There was no consistency between any of that stuff. Once you learned the Mac way of doing something, if you became proficient at MacWrite, and you could use MacWrite as a word processor.
Then the first time you opened MacPaint to do a drawing, which is a totally different task than word processing, you would be like, “Well, I bet I can open a file by going file, open. I’ll bet the shortcut for it is is command-O. I’ll bet when I want to save, I can just type command-S, and it’s a shortcut to file, save,” and etc., and so forth.
All of these things that you would guess, based on using apps X, Y, and Z previously, now, when you’re using app W, all of these things that you guess, “I’ll bet this is the way I do,” whatever, that usually is the way that you do whatever.
Rene: Additionally, Loren got hired by Twitter. They hired a few other people. I’m going to mispronounce his name, Ben Sandofsky, who works on Halide right now, he was one of the early Twitter for Mac developers.
Twitter for Mac… in your 120% time
Ben: Loren came on mid to 2010. If you read in the launch post for Twitter for Mac, the acquisition was mostly about the iPhone app, but Tweetie for Mac came along with it. Around October of 2010, periodically, Twitter would have hack weeks, like maybe once a quarter.
That’s when I started nudging Loren, like, “So, what’s the current plan around Tweetie for Mac?” Eventually, he sent me over a build of what would later become Twui, which was the UIkit for Mac. It was basically a table view. It wasn’t any actual Twitter in it.
I’m like, “Oh, my god. This is amazing.” Just scrolling through it was amazing. For Hack Week, him, me, and Doug Bowman, who’s Stop on Twitter, who was, at the time, the design director of Twitter, we all teamed up and basically, built something for Hack Week as like a, “Hey, everyone. Check this out.”
Then January, with the Mac app store, just lined up, let’s do it. Let’s go for it. Then the rest is history.
Rene: What was it like in terms of attention to the Mac app? Was it like just a bonus that they got along with Twitter for iOS? Was it an anchor around the neck [laughs] that got Twitter for iOS?
Ben: I was never in the C level suite on any of the conversations about how they truly felt, but it was always…You know Google has 20 percent projects? This was always a 120 percent project of, “Once you’re done with all of your work, we’re going to give you your nights and weekends.”
It’s really a testament to a lot of the people who love the app inside the company, who would go on to spend, in some cases, their holiday time off building in updates. I think that it never really received all of the support it needed.
Enter Tweetbot for Mac
Rene: Paul Haddad from Tapbots, you were doing Tweetbot for iOS, and you decided to do Tweetbot for Mac. What lead you to that decision?
Paul: It’s a mixture of basically two things. One, we use Mac all the time and Tweetbot all the time. Two, just a lot of people were asking for it. The Mac and the iOS apps work really well together. Being able to sync your position between the two apps is really convenient.
Rene: Twitter for Mac was already on the market when you launched Tweetbot for Mac, you still thought there was still demand for it? You still thought it was a good business to go into?
Paul: Yeah, like I said, the fact that they work — the iOS and the Mac app work so well together — and we did get a ton of requests for a Mac app to go along with it. Yeah, there was definitely a lot of requests for it, and a lot demand for it.
Rene: Now, you had Twitterrific on the market, Tweetbot on the market, and what felt like abandonware, Twitter for Mac, on the market.
Gruber: That’s why I say, going back to the beginning, that’s why I’m not surprised that they’ve done this, but it still is angering, to me, at least, that rather than look at the problem of, “Hey, we’ve let this app stagnate. Let’s fix it. Let’s throw some engineers and designers at this, and do a great 2018 native app,” that they’re just throwing in the towel.
I really do think that, on the desktop, I know Facebook doesn’t have it. Facebook’s a very different service. I know Instagram, bizarrely, doesn’t even have a native iPad app. They just scale the iPhone app up.
That doesn’t make any sense. You can look at them and say they’re successful, but I don’t think they’re successful because of that. I think they’re successful despite that. To me, Twitter different, at least for active Twitter users. It is so much better with a good native app.
Rene: It feels like communal IM. All the way going back to iChat, we’re used to having IM clients on our desktop.
That @jack thread
Gruber: There’s a quote here, Dan Frommer, who’s been on my podcast many times. I’m sure you know him. He’s at Recode now. Jack Dorsey responded to my tweet on Twitter.
Rene: I saw that.
Gruber: It was funny. His response was so bizarre, because what I wrote was, “It’s unbelievable how great a native Mac Twitter client Twitter had when they acquired Tweetie. It’s just unreal what they pissed away in favor of a shitty web enterprise.”
Jack wrote me on Twitter and just said, “Our desktop web interface isn’t that bad, but we did decide to focus all of our client efforts on mobile, TweetDeck, and consistency between.” I think that’s so telling that Jack Dorsey said, “Our desktop web interface isn’t that bad.”
Rene: He didn’t say it was great. He didn’t use any prideful language.
Gruber: Right. I can’t say I know Jack well, but I know him from before he cofounded Twitter, and made it big with Square, the other payments company. I know that he cares about design. Look at the little Square interface readers. You look at the Square software when you do it, it’s all really beautiful.
He does appreciate good design. Twitter, in the early days, used to reflect that. It’s just baffling to me that it doesn’t. Anyway, Dan Frommer’s tweet, I think, is good.
Responding to me and Jack, Dan wrote, “Twitter on the web feels like a static product, like something you open, read and close. Twitter for Mac made it feel alive, a never-ending conversation, in a way even the best mobile clients don’t. Really too bad.” To me, I can’t say it any better than that.
Twitter for Mac: The reboot
Rene: It’s interesting, too, because they at one point threw out all of the Tweetie code, and they outsourced. They got a really well-known third-party development outfit to make a completely new app for them.
It was definitely a 1.0 when it came out, but it feels to me like that team would have kept working on that, even if Twitter said, “Here, you take it. Make it a third party app. Just keep it going.” They chose to completely abandon it.
Gruber: All sorts of other decisions Twitter has made over the years come into this. There was a point, it still feels recent, but it’s probably longer ago than it was when they fully supported third party APIs. There came a point where they more or less said, “We don’t want people to make Twitter clients anymore.”
They started limiting the user tokens, like where every client, if you and I wanted to make our own Twitter client, we’d have to go through their developer process, like Twitter’s own app store. You’d get these tokens per user. They were limiting clients to 100,000 of them.
If you have 100,000 users, your app has broken through the noise, and it at least somewhat popular. Let’s just say you’re selling your app for $ 3 or $ 4, which is “a lot of money” on mobile. $ 300,000 or $ 400,000, and then you reach your user cap, that doesn’t sustain years of development.
Rene: No, especially people with multiple accounts, using many tokens for one purchase.
Gruber: I think it’s all very secretive, and there are exceptions to it. I don’t think apps like Tweetbot and Twitterrific are still subject to 100,000 user limit, but it’s not open. They’d still, for years, they’ve added new features. They don’t add the corresponding features to the APIs.
Just the one that always is irritating to me is Twitter’s polls, which are a useful feature, have never been added to the API. Third party clients can’t use them. Twitterrific has a nifty workaround, where if you…I forget, there’s a hashtag they look for, and/or if you include the ballot box emoji in your tweet…
Hacking around the limitations
Craig: We put some code in there that detects certain markets. If it sees certain things, just put basically puts up a web view that’s got Twitter’s poll thing in it. You can at least see what the poll’s about, or vote in it, if you want.
Which is better than nothing, which is what we had before. Again, we will be the first to admit, it’s totally a hack, but it’s doing the best with what we’ve got. We wish we had more.
I know that, again, back to knowing people in engineering at Twitter, I know that there are some people who wanted to give us that ability. At a higher level in the organization, we’re not important to them.
Rene: You’re bending over backwards to make up for the lack of access. I think it’s especially incumbent on Twitter, if they’re going to stop supporting Twitter on Mac, to make the apps that do support Twitter on Mac as good as possible.
Paul: Yeah, it would be nice, but I don’t expect it to change. I’d love to have the entire set of the APIs that the Twitter apps use opened to everybody to use, because I think it’d be great for the platform, but I don’t think this will change that in any way.
Gruber: I think that they were misguided. I think they’ve really thrown…This is my opinion, and I could be wrong. There’s no way to prove it. I really feel that their early years, everything was go, go, go, and a lot of people thought Twitter had a very bright future.
Who knows? Maybe they would be bigger than Facebook. Who knows? It was early days. You remember, there was a time where, what the one that Rupert Murdoch bought, and then it went away? It was a music-focused social network.
Rene: There were so many. There were Pownce, and there was Jaiku, that Google bought. The list went on and on.
Where Twitter went wrong
Gruber: Social networks, it just seemed like they’d have two years of going up, and then they’d bust. Then Facebook truly blew up, and became one of the…I don’t, by revenue, other metrics, the time people spent, and the number of users around the world, without question, Facebook’s one of the top five tech companies in the world right now.
Twitter was different from Facebook in so many ways. That’s why I use Twitter and don’t use Facebook, because of those differences. Instead, I feel like the lesson that Twitter’s leadership took at the time was, how can we become more like Facebook?
They were like, “Well, Facebook doesn’t have third party clients. They make everybody go through their clients, and they benefit from that in certain ways. We should do the same thing.” I think that is true of Facebook, the way that Facebook creepily manages everything, tracks you, and stuff like that.
I don’t think it was true for Twitter. I don’t think Twitter lost anything by having people use their first party clients, as opposed to just the fact that they were on the service, period, is good enough. If you own the phone network, who cares who makes your telephone? It’s just the fact that they’re on your network.
Rene: The interesting thing to me is, I know somebody who was working at Twitter at the time. Facebook had the news feed, which ended up being this goldmine for them in terms of advertising revenue. They could just inject things into the news feed.
The obvious parallel for Twitter was the timeline. He looked at me one day, and he said, “Look, you’re no longer our normal customer. You’re no longer the customer that we want. What we want is somebody who follows thousands of people, is almost followed by nobody, has no idea what a DM is, and all they want to do is #AmericanIdol.”
That was the stark explanation of how Twitter, and that was under the Dick Costello era. That’s how they saw Twitter as a service.
Gruber: Like I said, it’s not surprising. Perhaps if anything, it’s more surprising that they didn’t pull the plug on it earlier. It’s still sad, though, because I always held out hope that somewhere inside Twitter, they were secretly working on a good first party client.
What this means for the Mac
Rene: Do you see this as anything to do with the larger, because like I said, you mentioned earlier at Daring Fireball, what’s happening with Mac apps in general. Do you see this as part of any larger trend, or is this specific to the mentality that is Twitter?
Gruber: I do think it’s part of a larger trend. I think it’s a problem for the Mac. I don’t know if it’s a problem for Apple in the long run, but I do think it’s a problem for the Mac. There’s always been a desire for cross-platform applications. It goes back, like you said, Adobe Air. You can go back to…
Gruber: Yeah, Java. That was the whole point of Java, really. Write once, run anywhere, where you could have one app, and install it. Those previous such things, though, were always rejected ultimately in the market, because people just didn’t like the apps.
Even if they’re not UI critics or UI designers themselves, you don’t have to be an expert chef to know if something tastes good or not. Those apps just didn’t taste right. They felt weird, and they often ran slow. You could tell they used up too many resources.
Something has happened, I think, slowly but surely over the last 20 years. I do think it’s generational, where there are younger people who’ve grown up in the web era, and they’re fine with everything being, they don’t really care.
Rene: The Electron app.
Gruber: Right. Slack’s current “native” app for Mac is a perfect example. I forget if they’re using Electron.
Rene: Usually, you can do command-R, and it’ll reload the whole app, like a web view. [laughs] You can tell.
Gruber: Whatever it is, it’s giant web view. These things, just to open one window uses 200 or 300 megabytes of RAM.
Rene: Because they’re Chrome under the covers.
Gruber: I don’t think everything that falls on the side of, “Well, it makes sense to have a native mobile app, on the desktop, our website is fine.” There are some services like that, but there are others that I feel like, “Boy, that should be a native app.”
Something that’s two-way, something where you’re not just consuming information, but communicating…Slack’s the other example that I think of that I use, where boy, I sure wish that they had a native Mac app.
I use it enough, where every single way that drag and drop works different and text input works different is a daily, nonstop annoyance to me.
Twitter for Mac alternatives
Rene: Last question, John. What do you use for Twitter on Mac?
Gruber: I use Tweetbot, on both iOS and Mac. I love Twitterrific, and I happily supported their Kickstarter campaign to raise money to redo the Mac version in a modern way, really a true rewrite from the ground up.
The Kickstarter worked. Their development really was on schedule, which is always a really tough game on a Kickstarter software campaign. I couldn’t be happier that it’s worked, and that people who love it work.
It’s a terrific app, but it doesn’t fit my mental model of how Twitter works. That’s, to me, why you want multiple clients in anything. You want multiple good text editors, and you want Pixelmator and Acorn. You still want Photoshop from Adobe, because different apps appeal to different people in different ways.
Rene: Even in different contexts.
Gruber: Yes, right.
Rene: On my iPhone, I use Tweetbot, because I just want to triage Twitter as fast as possible. I use Twitterrific on my iPad, because I want to sit down and read. I find it a more enjoyable reading experience.
One of the unified timeline. The second is the edit feature that you hacked together brilliantly, and the third is really the phenomenal accessibility support you’ve got in there.
Gruber: That’s why A, you don’t just want the first party client, and B, that’s why you want multiple. You want a thriving market for multiple native clients. The fact that I don’t use Twitterrific isn’t a knock against Twitterrific.
The fact that both Twitterrific and Tweetbot can both be successful, and be so different at showing the same services, stuff, is to me, it’s a great example.
Rene: It’s proof positive that Twitter is infrastructure, and can support multiple, multiple manifestations.
Rene: John, thank you so much for joining me. People can find you at Daring Fireball, and the talk show. I think, actually, they’re probably still listening to this week’s episode, because it was like 19 [laughs] hours long.
Gruber: Thanks for having me here, Rene.
Rene: Thank you so much, John. I appreciate it.
Paul: I don’t think it necessarily has any long term impact on Mac itself. I think it’s a lot of how people use Twitter. And the Mac user base has always been significantly smaller than iOS for us and for Twitter itself. Much more so for Twitter, so it kind of makes sense that they don’t want to spend those engineering resources working on a Mac app that most users will never use.
See Twitterrific on App Store
See Tweetbot on App store