Neil struck a chord with me a while ago in a post about his iPhone apps, where he described Instapaper, for him, as the place ‘where saved webpages go to die’.

Like a lot of people, I use services like Google Reader, Twitter, Delicious and Instapaper to help me find and store interesting links to articles, tools, apps or whatever. Personally, when I don’t have time to read it right now, I tend to star an item in Google Reader, ‘favourite’ it in Twitter, or mark it to ‘Read later’ in Instapaper – often five or ten things a day. I also save interesting stuff to Delicious, particularly where I think it may have longer term usefulness.

But I hardly ever actually go back and read those things.

Mainly it’s because it’s a bit of a faff finding the links, and because the time I’d get to do it (on the train, hanging around waiting for a toddler to wake up, etc) I’ve generally only got an iPhone to hand. In the past, I’ve experimented with using Yahoo Pipes to merge those streams into a feed on this blog (see the grey column on the right), but ultimately that’s been more for other people’s benefit than my own.

Hence Reading. This is a little sliver of PHP and jQuery which:

  • brings together the RSS feeds of all those starred/tagged/favourited things, in reverse date order
  • turns them into a simple paginated list, accordion style (i.e. each item pops open neatly) which I can read through quickly when I get time
  • does a few little things like loading the site into an iframe so it’s quicker to scan through the list; and turning URLs and @usernames in favourited tweets into clickable links
  • works on my computer, or my phone

Here’s what it looks like in a desktop browser:

Reading - Mac

The mobile version (which just sniffs for an iPhone user agent) is designed to work on a less reliable connection and, er, a smaller screen – so doesn’t try to load the saved site in question into an iframe like the desktop version. This is what it looks like:

Reading - iphone

It’s very simple, and not exactly rocket science, but I’m hoping it will help me to actually read some of those things I’ve saved with the best of intentions.

I’m sharing the code here, under a GPL licence, in case anyone else has a similar itch they’d like to scratch. If you have any suggestions or comments (I can’t guarantee support, but I’ll do my best) then drop me a line in the comments.

Update: As per Alan Levine’s comment below, I should point out that this code requires the Simple jQuery Accordion Plugin (download includes jQuery library) and SimplePie. I’ve updated the download link above to include not just the index.php code but also these dependencies and the stylesheet file.

Postscript: Version 0.2 will, hopefully, add something else I’ve been aiming to do: save all those links to a Google spreadsheet on a daily basis using the Google Spreadsheets API, to help me to find stuff I starred a few weeks ago but can’t find when I actually need it. I’ll share that code when it’s done too.

UPDATE: 26-Nov
I’ve knocked together a little script that runs nightly on a cron job to gather anything I’ve added to my feeds in the last 24 hours and save them to a CSV file archive for posterity. The source code is available.

Get notified of new blog posts by email


This is awesome, thanks for the code. It would be helpful to be more clear that one has to download simplepie (and set up a cache directory) as well as the Simple jQuery Accordion plugin (figured it out from the source code). Also what you were missing was the custom css file that makes it look nice (I was able to find it from where you have your’s installed).

I have it running now ar

I added one bit of customization; at the top PHP I added:

define(FEEDMASTER, ‘Cogdog’);

and on the output, made the heading (not sure how the comment will deal with the code fragment)

<h1><?php echo FEEDMASTER?>’s Reading List</h1>

But thanks, this is very handy.

Thanks for this – I have exactly the same problem (and have resorted to emailing tweets so I can follow the links when I have better internet access), but as you probably can tell, I’m no programmer – do you have any suggestions on an app that will do this??

Hi Alan – Thanks for the comment – you’re right, I wasn’t making it easy. Updated the code now with your suggestion, and included more of the dependencies to make for an easier install.

And thanks for Feed2JS – a real godsend!