I’d Tumbl For YouOctober 16th, 2008
MarsEdit is my popular desktop application for writing and editing blog posts from the comfort of your Mac.
Tumblr is a popular web-based blogging system that emphasizes simplicity of authoring and presentation.
You might guess that among fans of these two popular products, there is a significant overlap. You would be right. I regularly receive requests from customers who are hoping to use MarsEdit as a remote editor for their Tumblr blog. And I would very much like to see that happen.
But there’s a problem. The Tumblr API is deficient in ways that make it impossible for me to provide an acceptable user experience, and my attempts to reach a sympathetic ear at Tumblr have been fruitless for almost a year. I am forced to reply to each request for Tumblr support with a somewhat complicated, apologetic reply.
Brief Interlude: Blogging APIs
A blogging API is the mechanism through which a blog service such as WordPress, Blogger, Movable Type, etc., make their content available to clients such as MarsEdit for posting, editing, or deleting. At its simplest, you could think of it like a file format. In the same way that Photoshop can edit images of type “JPEG”, MarsEdit can edit blogs that implement formats that it recognizes.
Most services use one of a few standard blogging API interfaces. This makes it possible for applications such as MarsEdit to work with a variety of services. MarsEdit even works with blog systems which I myself have never heard of! Because blog developers design APIs to match a standard implementation, they work well with MarsEdit, Windows Live Writer, and dozens of other blog editing applications.
Generally speaking, when I make improvements to MarsEdit, I’m working to improve its support for these standard interfaces. By adapting to the standard interfaces, an improvement that benefits Movable Type users may also benefit the users of dozens of other blogging services. A pretty nice arrangement for me, users, and blog service developers!
Tumblr’s Custom API
Tumblr does not implement any of these standard APIs. They provide a custom “Tumblr API” that provides both much more and much less functionality than any of the standard interfaces. Normally, I would not be inclined to add support for a non-standard API in MarsEdit, for the same reason that Photoshop would not be inclined to add support for some new image file format that somebody invented. But because of Tumblr’s incredible popularity and because of the strong user demand for such support, I decided to implement support for Tumblr in November, 2007.
In fact, shipping versions of MarsEdit have for almost a year included Tumblr specific support. But I refuse to enable it or endorse it because it falls far short of what I would call an acceptable user experience.
What’s wrong with the Tumblr API? The most glaring omission is that it doesn’t provide the ability to edit existing posts. As you might imagine, for a product called “MarsEdit,” I find this functionality extremely important. Imagine writing a new post to your Tumblr blog, only to notice a second after posting that you’ve made an embarrassing typo. In order to fix the post, you’ll have to leave MarsEdit and go to the web to edit the post. Unacceptable.
Less significant but still annoying is the inability to delete posts. While this functionality is certainly less common than editing, it’s still something that users reasonably expect to be able to do. Though I could disable the “Delete” button in MarsEdit, or display an informative alert when attempting to delete, it would be much better if the API simply supported deleting.
Smaller problems also exist, such as a poorly documented date format, and the inability to read back tags that have been set on a post. I suspect that if I was able to proceed further with the API, other issues might arise over time.
These issues are, in short, great bug reports for Tumblr. But the company does not seem interested in fixing them, or even acknowledging a lack of interest in fixing them. Frustrating for me, and frustrating for any of my customers who yearn for this support.
Where Do We Go From Here?
By no means do I think Tumblr should feel compelled to implement one of the standard blogging APIs. Nor do I feel that they should be compelled to extend their API such that it provides the bare minimum of functionality for clients such as MarsEdit. They are an independent company with priorities that are different than mine. Whether they choose to support remote clients with their API is their decision.
What I want Tumblr and MarsEdit customers to know is that the ball is, and has been for some time, in Tumblr’s court.
There are relatively simple changes that Tumblr can make to their API to facilitate an acceptable user experience not only from MarsEdit, but from other client applications that might choose to embrace the service’s API.
Because Tumblr has not responded to my inquiries, I would encourage any Tumblr customers who would benefit from a remote editing client such as MarsEdit, to contact Tumblr directly and ask that they take my suggestions to heart.
Information about contacting Tumblr is available at the bottom of the Tumblr Help Page.
I hope that this information helps to explain MarsEdit’s continued lack of support for the Tumblr platform. For those of you who have waited so patiently, I hope that one day I am able to add full-fledged Tumblr support to MarsEdit.
Update 10/17/2008: Sometimes the internet works! In a great turn of events, Marco Arment from Tumblr has commented on this very post, indicating that he’ll be making a priority of this requested support. I am looking forward to a positive development in Tumblr’s API!
October 16th, 2008 at 8:58 pm
Excellent entry and could not be timed better. Last night I was casually wondering to myself if MarsEdit supported Tumblr, and here’s the answer! I’m not a user of MarsEdit but have this blog in my feed reader. Thanks for the info!
October 16th, 2008 at 10:07 pm
You know, its interesting, I like Tumblr, but don’t actually use it because I can’t stand web-based editors. I can’t believe they overlook this. I suppose it is simply time to look for another bogging service.
October 16th, 2008 at 11:06 pm
I apologize for not implementing this support sooner. This particular task falls directly on me. We’ve been quite busy and this hasn’t received the attention that it deserves.
We’ll add the support you need to make MarsEdit work with Tumblr within the next 60 days.
Please contact me directly on this: firstname.lastname@example.org. Thanks.
– Marco Arment
Lead Developer, Tumblr
October 16th, 2008 at 11:59 pm
Wow, that was fast, now think about how much happier we all could have been if this had been published sooner. Actually who knows if things would have turned out this way…
I suppose I should just be glad I will soon be able to use my favorite blog editor with my favorite blogging engine.
October 17th, 2008 at 1:43 am
Good news! Nice to see that kind of quick response.
October 17th, 2008 at 2:36 am
That’s rather fantastic news from Marco.
In all honesty, the fact that MarsEdit wasn’t able to support Tumblr was pretty much a dealbreaker for me… in that I’ve not been prepared to use Tumblr while the situation remained that way.
I’m quite looking forward to this now :)
October 17th, 2008 at 3:40 am
I’m pleased to see other people asking Tumblr for better programmatic access. There are two open requests on Get Satisfaction, one for update and delete in the Tumblr API, and another for standard weblog API support, either of which would give MarsEdit the tools it needs to do its job.
I’m very pleased to see Marco’s comment, and hope that one (or both!) of those two tickets can be closed soon.
One small correction, though: although the documentation doesn’t seem to mention it, the read API does show tags. At least, the JSON dump I took a month or so ago has tags in it.
October 17th, 2008 at 7:50 am
Tumblr guys: well done for responding, it”™s a credit to you.
Daniel: well done for not enabling MarsEdit”™s limited Tumblr support. I bet lots of developers would have dumped this complexity on their users, by advertising Tumblr compatibility, and popping up alerts when users tried to do something unsupported by the API.
Instead, you refused to half-implement the feature, possibly at the cost of some sales. I bet you saved a bunch of people some time they would have spent downloading MarsEdit, trying out the half-baked Tumblr support, and giving up.
Good on ya.
October 17th, 2008 at 9:20 am
I have used marsEdit with Tumblr – set it up manually.
It does work, but a lot of the features are missing that you get with the mainstream systems. I agree about Tumblr – it’s a great, easy to use system and they even have a sew good-looking themes (appear to be Blogger or WordPress converts.)
I stopped using it because of some other ‘glitches’ – for example, zero timestamps on any and all posts in a group and so on.
I have contacted the Multiply people myself (http://multiply.com) and asked that they find a way to allow MarsEdit (and others) to remotely work with their system.
They responded to me almost immediately and are intigued. The tech I spoke with wasn’t familiar with MarsEdit (no surprise and understandable) and “hadn’t really thought of” aftermarket offline editors.
The word I get from them is that it sounds interesting, and they will look into it when they have the opportunity to do so.
Unfortunately, I can’t even set-up Multiply manually. Like Tumblr, it offers multimedia posts. So I can understand why an external posting/editing application intended for basic blogs would have to have some kind of unique API to only post blog articles and ignore the other areas, such as photo album and movies album and so on.
meh, my main squeezes are WordPress and Blogger anyway.
Now if I can just get Blogger to stop adding extra carriage returns in my mosts…
October 17th, 2008 at 12:01 pm
Marco: great news! Thanks so much for responding quickly and positively. I look forward to working with you on the changes.
October 17th, 2008 at 4:08 pm
Why didn’t you use WebKit to get you the last 20% of the way there? There are a number of tools in that framework that could solve all of the problems you mentioned and any further ones. I know that it’s a bit of a kludge to maintain, but you can solve that with automated testing.
There’s a difference between “not in the API” and “not possible”.
October 19th, 2008 at 1:08 am
Steve: I guess you’re suggesting I could have used a screen-scraping approach to mask the absence of API access.
To answer your question, the reason I didn’t do that is because I have enough work to do just trying to support systems with relatively well-behaved APIs. It makes a lot more sense more sense in situations like this for the service to do a little work in order to prevent the clients having to do an unbearable amount of work.
October 22nd, 2008 at 12:24 pm
I still hope Tumblr moves to a standard API rather than just fix the existing one.
It would ease my mind to know that developers do not have to do anything special for Tumblr when they add new features to their blog editing software.
October 23rd, 2008 at 11:47 am
Iam be afraid the developers will do special´s for Tumblr…
October 27th, 2008 at 10:56 pm
I’m going to gently tweak you a little here. :) I’m a registered MarsEdit owner but don’t use it much because my main blogging platform is LiveJournal.
Okay, MarsEdit supports LiveJournal. Sorta kinda. But, well, not really. I know from past comments you were waiting for them to get their Atom publishing system done, but… I’m not sure I’d keep waiting.
The thing is, the state of LJ-specific blogging clients on OS X is bad. Really bad. As bad as you may think I mean? No, it’s worse than that. The ones I can find are all buggier than a South American jungle and are, for practical purposes, abandonware. I’ve ended up writing in TextMate in Markdown, converting to HTML and pasting stuff into LJ’s web interface directly.
I’m aware LJ support is non-trivial; it has a lot of metadata compared to some other blogging systems, not to mention LJ-specific tags most clients support. (I wrote a little LJ API interface in Ruby years ago to let me post directly to LJ from Emacs.) And I suspect to sell to LJ users MarsEdit will have to support all of that metadata — even though it’d be competing against abandonware, it’s *free* abandonware. But if it did, it might well be worth it for a fair number of people.
October 27th, 2008 at 11:01 pm
Hi Watts – thanks for the feedback. You know, I do still have ambitions to further improve the LJ support in MarsEdit, but I have to be honest and admit that the demand is diminishing and seems likely to continue to do so. I don’t know if it’s because of the sale of LJ, or because of the upsurge in popularity among Blogger, WordPress, and newer sites like Tumblr, but the number of people actively using LJ and asking for MarsEdit support has dropped significantly.
I realize this could be a situation where they stop asking because they’re not getting. But my feeling is that there are far fewer people these days who are using LJ and who would like to have support in a native client like MarsEdit.
Of course, I’d like to support everything as well as possible, but I always have to pick the highest priorities and try to chip away at them one at a time.
October 28th, 2008 at 3:47 am
+1 for LiveJournal here. For some reason, I assumed the current level of support for LJ was as good as it could reasonably get, and so didn’t really bother asking for anything more. In all honesty, the only thing I really miss is per-post security settings–I know what the tags are, and compose plain HTML anyway, and I’m not really bothered by autodetection of what’s currently playing in iTunes and the like, but security’s the one which keeps me from using MarsEdit for LJ.
December 16th, 2008 at 12:38 pm
For any microbloggers out there, Publr just implemented the microblog api and can now receive posts with MarsEdit.
December 23rd, 2008 at 4:13 am
A hearty +1 from me, too.
And a +1 on this. A friendslock option is by far the most important thing, and is the only reason I keep XJournal lying around. All the tags and such, I can just create custom markup for.
My two most-desired features are an LJ friendslock, and the ability to arrange drafts into folders.
December 23rd, 2008 at 3:44 pm
lauredhel : thanks for the additional feedback. As usual, I find myself hung up on wanting to do “all or nothing” with support for these systems. It is sounding more and more like a nice priority feature would be to support these security values. If I can figure out a way to efficiently add this to the product sooner, I will do it.