An idea for bookifying the web
I use Pocket, a handy “read it later” tool. The idea is that I can “pocket” a web page by clicking a bookmarklet (or browser extension), and the page is:
- added to a reading list
- delivered to my device(s)
- reformatted for readability (the main content is extracted and the page noise is stripped away)
You can see that there are 3 distinct use cases here, which happen to work well together. I’d like to suggest a 4th use case, which I’ll call PocketBook.
A PocketBook is a manifest of web pages that comprise a unit. In its simplest form, it might look something like:
"book": { "title": "The Things", "pages": [ "http://thing.com/article1.html", "http://thing.com/article2.html", "http://thing.com/article3.html" ] }
(One could imagine adding levels of hierarchy to represent chapters.)
Given such a manifest, a Pocket client (including a regular HTML5 page) could slurp up all the content, format it and organize it for sequential reading.
A more sophisticated client would generate nice navigation and a table of contents, say. More so, it could be automatically translated into EPUB or PDF, and sent along to a Kindle.
Among the advantages: you always get the latest version of the “book”. You’ll note that even in the age of Kindle we don’t see book updates or corrections very often. The Pocket client could easily refresh. (And HTTP has well-defined, mature cache rules!)
The manifest could also include licensing information. Since these resources are all simply public web pages, I don’t see a place for protecting the content, but certainly the author could put purchase options in there:
"book": { "title": "The Things", "chapters": [ "title": "Chapter 1: The thingening", "pages": [ "http://thing.com/article1.html", "http://thing.com/article2.html", "http://thing.com/article3.html" ], ], "purchase": [ "paypal": "some url", "hardcover": "some url", "btc": "some address" ] }
Of course there is nothing special about Pocket here, I just chose them cuz I use them and it allows for a clever name. Instapaper or Readability could do the same.
Readability, for example, has Readlists, which I’ve used and are quite nice and do some of these things. But as far as I can tell, they must be created and hosted on readlists.com, and I don’t see an obvious update mechanism. A simple manifest format that one could create programmatically would open more possibilities.
(My motive, by the way, is a desire to see this excellent site packaged up.)