Tech Life A continuous design philosophy

Interview: Marco Arment

On my list of horrendously bungled acquisitions, I put Delicious near the top. Since its acquisition by Yahoo in 2005, the biggest user-facing change to the site was a visual refresh in 2008. Even with this rampant feature stagnation, I’d stuck with the site because it solved a daily need for me — bookmarks anywhere.

Yahoo’s strategic negligence is mind-boggling. In a world of exponentially increasing information, coupled with increasingly different ways of accessing it, the idea of investing in a social service that tells you precisely what your users care about strikes me as a no-brainer.

Fortunately, nature abhors a vacuum and Marco Arment’s Instapaper has deftly stepped in to replace Delicious. I spoke with Marco via email to understand the origins of Instapaper, the valuable lessons he took from his first company — Tumblr — and how he manages one of web’s most useful sites as a one-man shop.

RANDS: Where did the idea for Instapaper originate and how long until you had a usable product?

MARCO: In the fall of 2007, I had just switched to the iPhone, and I had a long train commute every day. I never knew what to read on the train, but I’d find stuff all day at work that I didn’t have time to read, so I made Instapaper as a simple, one-click link-saving service for myself to time-shift links from the work day to my train commute.

The original web app took only a single night to write. It was usable, but it was very simple.

Over the next couple of months, I added a few useful features, most notably the “text” mode to strip articles down to iPhone-formatted text. This was so the EDGE-only original iPhone could download them quickly and keep more tabs in RAM without needing to reload them when I was potentially underground and offline.

When did you know you had something viable on your hands?

I just used it myself and didn’t tell anyone for a few months. I then showed it to a couple of friends. After a week of using it, they were already raving that it was amazing and it changed the way they read, so I gave it a few nights of polish and posted a simple link to it on my blog.

Within days, it had thousands of users and was getting widespread acclaim. I had no idea it would get so big so quickly.

What’s your favorite stat or fact regarding Instapaper?

Most people assume that online readers primarily view a small number of big-name sites. Nearly everyone who guesses at Instapaper’s top-saved-domain list and its proportions is wrong.

The most-saved site is usually The New York Times, The Guardian, or another major traditional newspaper. But it’s only about 2% of all saved articles. The top 10 saved domains are only about 11% of saved articles.

You’re a one-man shop and are, among other things, developer, support, and operations — how do you pull that off?

A lot of coffee and Phish.

Were there design decisions you made early on in order to manage that? What were they?

Absolutely.

The biggest design decision I’ve made is more of a continuous philosophy: do as few extremely time-consuming features as possible. As a result, Instapaper is a collection of a bunch of very easy things and only a handful of semi-hard things.

This philosophy sounds simple, but it isn’t: geeks like us are always tempted to implement very complex, never-ending features because they’re academically or algorithmically interesting, or because they can add massive value if done well, such as speech or handwriting recognition, recommendation engines, or natural-language processing.

These features — often very easy for people but very hard for computers — often produce mediocre-at-best results, are never truly finished, and usually require massive time investments to achieve incremental progress with diminishing returns.

If a one-person company is going to build a product, it can’t have any of those huge time-sink features. At most, I can afford to have one or two components of moderate complexity, such as the HTML-to-body-text parser and the Kindle-format writer. But even those are barely worth the time that I put into them.

What were the biggest lessons you took from Tumblr that made the design, development, or deployment of Instapaper easier?

Tumblr didn’t have a dedicated server administrator until a few years into its life, so I had to be our de facto server administrator in addition to my primary developer role from Tumblr’s start until we had 48 servers handling about 5,000 requests per second.

Since that’s a sizable infrastructure, but we had very little time to devote to maintaining it, I had to choose mature, stable technologies with great tools and very low administration needs. And I built Instapaper on the same technology: PHP 5 with a custom high-performance MVC framework, MySQL, Memcache, Apache, and CentOS, on high-end dedicated hardware.

This proved invaluable to both Tumblr and Instapaper, since I don’t need to deal with webserver processes crashing, corrupted databases, or any serious platform issues. All of these tools are used by many other companies with deployments much larger than these, so nearly all of the bugs get worked out long before they get a chance to affect us.

The result of all of this platform conservatism is that I can spend my time improving the product in meaningful ways instead of fighting with my server software.

What part of Instapaper’s infrastructure are you most proud of?

The bookmarklet has a mechanism to save pages from sites that require logins for full content, such as the Wall Street Journal and Harper’s, by sending a copy of the page’s HTML from the customer’s browser to the server. It’s like automating the “Save as…” menu item: if you have your own account for these sites and can see the page in your browser, you can save it to Instapaper.

The way it does this is ridiculous: instead of calling a simple GET request to save the page, since an entire page’s contents would quickly overrun any URL-length limits in the stack, it injects a FORM with a POST action and populates a hidden value with the page contents.

But form-data requests from browsers aren’t Gzip-compressed, so the resulting data is huge and needs to be sent over people’s (often slow, often mobile) upstream connections. So I found an open-source DEFLATE implementation in Javascript — really — and the bookmarklet compresses the page data right there in the browser before sending it.

The whole procedure is hideously complex, but works incredibly well.

Instapaper integration seems ubiquitous in any information consumption application that’s been released in the last year – how did that start?

This started as a fortunate side effect of having a few influential developers who were fans of Instapaper, most notably Loren Brichter (Tweetie, now Twitter), Craig Hockenberry (Twitterrific), and Brent Simmons (NetNewsWire), who integrated send-to-Instapaper features into their respective products a long time ago. And since the Twitter and RSS client markets are so competitive and innovate so rapidly, many other developers quickly followed suit.

Now, it’s almost always a highly requested feature for new content-finding and content-consumption apps, especially on iOS. I’m just honored and humbled that it has become this widespread.

My impression is your feature development process is very iterative — do you start with something that you want yourself and then slowly develop for your users? Does it work? How do you know when you’re done?

That’s correct. I don’t plan specific, major releases very often — I just incrementally build on the product in development, test features on myself for a while, cancel those that don’t work, and roll up the successful ones into a release every few months.

Generally, I know I’m done because as I’m testing the migration from the current in-store version to the new version, I cringe at how bad the in-store version is relative to my shiny new development copy. I think, “I can’t believe *that* is what customers are using right now, when they could be using *this*.”

That’s when I freeze new features, fix any known bugs, polish any rough edges, begin final testing, and prepare to issue the release.

What productivity tip have you discovered that now you can’t live without?

Keep a to-do list.

A real one. One that you actually use and update throughout the day. It doesn’t need to be fancy, like the getting-things-done task managers — I use TaskPaper, which is essentially a text editor with optimized syntax highlighting for to-do lists, against a text file on Dropbox.

I’ve never been a note-taker. In high school, I was that smartass kid who never had any notebooks or anything on his desk in class. Just a blank desk to slowly fall asleep on. I thought I could just keep track of everything in my head, which is true in high school if you’re a smartass slacker, but doesn’t work very well after that.

If a task isn’t written down in a list or set to alert me in iCal, it’s gone. Forgotten. Doesn’t get done.

Oh, and dump your cable TV service. Get the shows you actually enjoy from iTunes and Netflix and stop wasting time watching whatever’s “on”.

What’s your favorite thing to do when you’re not being an engineer?

I love to write. Not anything substantial, like novels or stories — just blog posts. Writing about a subject helps clarify, mature, and sometimes even change my opinion on a topic. Afterward, I feel accomplished and productive, and the responses I get are fulfilling, constructive, and often more numerous than I expect.

Leave a Reply

Your email address will not be published. Required fields are marked *

18 Responses

  1. sapporo 14 years ago

    How could Instapaper possibly serve as a delicious replacement if it doesn’t offer tags or even basic search functionality?

  2. Oh, and dump your cable TV service. Get the shows you actually enjoy from iTunes and Netflix and stop wasting time watching whatever’s “on”.

    Superb advice. (Also, Instapaper is awesome.)

  3. Larry 14 years ago

    The real value of delicious lies in its social aspects. The ability to search through other user’s bookmarks is a key feature, but the killer feature is the high-quality crowdsourced search you get as a result of the social network.

    There are a lot of cool ways to go from there, but Yahoo did nothing– a shame.

  4. Oh, and dump your cable TV service. Get the shows you actually enjoy from iTunes and Netflix and stop wasting time watching whatever’s “on”.

    I would love to do this and will as soon as I can get all the live sports that I watch over IP.

  5. ChuckO 14 years ago

    @Rick:

    Yup, sports are the cable killer, killer.

  6. I’d find stuff all day at work that I didn’t have time to read, so I made Instapaper as a simple, one-click link-saving service for myself to time-shift links from the work day to my train commute.

    I’ve been searching for the right phrase to describe Instapaper and Marco just gave it to me with “time-shift”:

    Instapaper is a DVR for web articles.

  7. Pat Dryburgh 14 years ago

    How could Instapaper possibly serve as a delicious replacement if it doesn’t offer tags or even basic search functionality?

    Because while Delicious’s purpose was primarily for bookmarking web pages, Instapaper’s purpose is to help users read webpages. Later. I don’t need tags to tell me what articles to read. I know what articles in Instapaper I want to read: all of them.

  8. Eytan 14 years ago

    A lot of coffee and Phish.

    Nice.

  9. Love that “coffee and Phish” answer. Cool guy on this alone.

  10. I love Instapaper. But only for reading things later. It’s not by any means a Delicious replacement.

    I use Delicious as an extension of my memory. I tag articles, blog posts, documentation, news … according to their key content, or at least according to the key aspects that I think might ever come in handy. By looking up Delicious bookmarks through the combining (“AND-ing”) of tags, I can find back anything.

    It has saved me countless hours by now. I’ve accumulated about 6000 bookmarks over the last few years.

    What is missing for people who use Delicious like this, is a way to send things you’ve read in Instapaper to Delicious. Because one often first has to read something, or at least skim it, to determine whether it might come in handy in the future. Hence: Instapaper first, Delicious second.

    Currently that step is an extremely frustrating one. There is no elegant solution.

  11. Claire 14 years ago

    I like instapaper, and I like paper.li, and I wish I could meld them into one continuously updated outward-facing paper, cordoned into tailored arenas. It would be the death of a lot of link-sharing email chains, which would be lovely.

  12. Ryann Mullennex 14 years ago

    1000 better than info on other blogs like this

  13. > The way it does this is ridiculous…

    I don’t get the “it” that the bookmarklet’s very author calls as doing “this” [saving a page] in a ridiculous fashion. It sounds contradictory at best. Marco claims to love to write. Well, shouldn’t he first master expressing himself unambiguously rhetorical Q.

  14. Kyle D. 14 years ago

    It’s unfortunate that this article frames Instapaper as being a delicious replacement. It can be, for some people in some use cases, but I don’t think that’s what Marco set out to do. Instapaper is its own service, one that I find incredibly useful, but it’s not a social bookmarking site.

  15. My two fav geeks in one spot. Perfection!

  16. “The biggest design decision I’ve made is more of a continuous philosophy: do as few extremely time-consuming features as possible.”

    I have nothing more to add then: Amen.

    And this is about the same for dumping your cable TV service. Something I’ve done about 5 years ago. I never looked back.

    And yes Instapaper is the most awesome app I ever used. You can trash the iPhone.app on the Phone, but please, please let me keep Instapaper.app. I happy to contribute every three months directly to Marco for future development.

  17. Apparently this is just me, but I like your articles better than this interview.

    Oh well, you can’t please everyone all the time, and I’ll happily check out your next work.

  18. Tamiko Canterbury 13 years ago

    His devotees are very crazy and stupid they treat bieber as a Jesus or simply something i’m talking about bullshit she managed a song utilizing Chad brezzy and (this fans) usually do not what precisely her suspending with CB thats very crazy and its somewhat like you wanna wounded this fans feelings i know i would i don’t despise him at all however , i don’t extremely listen to this music together with i really dislike his hard core devotees they’re just fucking cocky haters regarding everbody Selena Gomez is okay together with those devotees wanna fuck your girlfriend up cuz your sweetheart utilizing him i’m talking about fucking brainless.