Log in

No account? Create an account
Pinboard.in as a Lightweight Database - Arvind Narayanan's journal [entries|archive|friends|userinfo]

Pinboard.in as a Lightweight Database [Apr. 25th, 2011|11:42 pm]
Arvind Narayanan
[Tags|, , ]


  • A tagged/annotated list of web links with some rudimentary programming is surprisingly useful for many simple content curation and presentation tasks.
  • Pinboard.in is particularly well-suited as a store for such links due to its reliability and nice API.

I noticed some of my academic peers collecting lists of press mentions of their work, and I wanted to make such a list for myself. I realized that the only way I'd maintain such a page, and not eventually abandon it, was if it was dead simple to add or delete a link. The ideal UI would be to tag an article via a bookmarklet and have it automatically show up on the list.

So I quickly whipped up a script to do that; you can see the result here.

Not so delicious. The first version of the script used delicious as the backend, which gave me headaches right away. One of the links wasn't showing up for some mysterious reason, and after banging my head for a while, I realized it was delicious's API that was buggy. Worse, transiently buggy.

That's when I decided it was finally time to quit delicious (for everything, not just this project) and jump ship to the site that all the cool kids were talking about—pinboard.in. Best ten bucks I ever spent. The API is compatible with delicious, so I didn't even need to change my code.

Now that I had the script in place, I kept finding all sorts of new uses for it. I'd been meaning to collect my writing and software into lists for years; now that I had the right tool, it just happened. I also convinced my collaborator on DoNotTrack.Us to use my script for his bibliography.

Why does this work? The difference in usability in each case was so dramatic that I figured something was going on here that was worth thinking about. This is my best attempt to explain the combination of factors that make this approach so appealing:

  1. Maintaining a list of links is the kind of thing that happens via numerous tiny efforts spread out over time. If I had to log in to edit a document each time I wanted to add a paper to a bibliography, or change a minor detail like published to unpublished, the administrative overhead would overwhelm the actual work. Use of a bookmarklet here is a form of in-place editing.
  2. The bookmarklet automates a lot, including the title and the link itself; the backend script takes care of automatic chronological sorting. The latter, after all, is the trivial feature that led to the explosion of blogging.

Finally, here's a totally different application for which I found pinboard perfectly suited as a "database": making collage posters, which is a recent hobby. Here is my latest one: 

Click to embiggen (note: ginormous size)

I tag the images on pinboard, and my collage script uses the tags to guide the layout. The alternative would have been way more cumbersome. 

Parting thoughts. First, I'm curious to hear about any other potential use cases. One application I'm already considering is spaced repetition learning—bookmark an article and it will be injected into your RSS reader (or other reading list) at spaced intervals.

Second, I would urge developers of websites and CMS software to consider incorporating this feature. Not necessarily using pinboard, but the broader concept of creating/editing content via a bookmarklet. The primary challenge would probably be in communicating the workflow to users who are not familiar with it.


[User Picture]From: hlwoods
2011-04-26 11:45 am (UTC)
That script sounds wonderful, and, sadly, I'm not entirely certain how I would begin writing it.

Would you be willing to share it as an object example?
(Reply) (Thread)
[User Picture]From: arvindn
2011-04-26 06:13 pm (UTC)
Sure, here. I've also edited the post.
(Reply) (Parent) (Thread)