A Digital Commonplace Book Protocol for Internet Annotations

Any time I find myself thinking how great the Internet is, my thoughts drift to the one area in which I find it sorely lacking: a native annotation capability. The notion of hypertext and the linking of documents in a digital network is genius. It seems to me that if you can conceive of this, you have to understand that it works well only when you are talking about large volumes of “pages” or documents. And if you imagine large volumes of documents and the rabbit hole the links lead you down, you’ve got to wonder how we missed the native ability to annotate these documents as we go.

There are third-party tools that help with this. These tools can clip articles and store the clipped versions locally. Some of them provide tools for marking up the articles–highlighting, or adding your own annotations. But these often feel flimsy to me. It seems to me that what we need, is foundational tool for annotating what we read on the Internet. And while this does’t seem to be an operating system level function, it certainly seems to be something that a well-designed web browser should be able to do as part of its basic functionality.

Requirement for a Digital Commonplace Book protocol

The Internet is full of standards and protocols, and if I were designing web browsers, I’d see if I could come up with a standard for what I’d call a “digital commonplace book” protocol–DCB for short, since above all, a protocol must have an abbreviation. My DCB protocol would differ in some ways from tools like Pocket or Evernote. My list of requirements for a DCB would look as follows:

  • HTML protocols would be extended to support DCB. There is some additional metadata that would be needed to support annotations, like versioning, and being able to locate specific pieces of text or objects on the page.
  • Highlights and annotations could be stored locally or in a service (like Evernote or Pocket)
  • In addition to the highlights and annotation data being stored, information about the specific page and page version would need to be stored as well.
  • When a browser renders a page, it would look at the digital commonplace book to see if that page had entries, and apply CSS to the page to show the highlights and annotations when viewing the page.
  • If the page had changed since the annotations were captured, the meta-data collected as part of the annotation could provide a reference to the page version it was captured on, and the browser would have a kind of timeline slider for the page that allows you to scroll back in time to see the pages as it was at the time you captured your annotations.
  • On the server side, it might be useful to log how many times (and what parts) of a page have been annotated. These would all be anonymous logs. The site owner would not know who annotated the pages, just that (a) there was an annotation, and it which part was annotated. This would be optional at the site, or even page level.
  • The annotations features would be built into the browser, and the storage format would be standardized, and compatible with any browser.
  • Browsers would provide mechanisms for tagging, updating, viewing, searching, and exporting annotations.
  • The format of the annotations would be an open format readily accessible to other applications and protocols. JSON might be a good start.

The bottom line for me is that if I highlighted some text on a page in a browser, and made some notes about it, and then came back to that page a few days later, the browser would show my highlights and annotations inline as I viewed the page.

Making Kindle annotations compatible with the DCB protocol

The other major source of annotations I make are in the books, magazines and newspapers I read. And while Kindle provides a useful mechanism for highlights an annotating passages, it’s a lot easier to the get the data in than to get the data out.

I would make Kindle apps and devices compatible with the DCB protocol. I imagine this wouldn’t be too difficult, considering that the annotation functionality is already there in the devices and apps, and would just require some tweaking to make it compatible with such a protocol. The part I would spend a lot of time on is making sure it is as easy to get my annotations out as it is to get them in.

I was thinking about this because I am getting ready to write my next post on how I’m using Obsidian to catalog my reading and reading-related notes. I read in all kinds of mediums. I read web pages, articles in apps, on the Kindle, via Audible audiobooks, and of course on good old-fashioned paper.

For me, all books are interactive. I converse with the authors in the margins. I highlight passages and come back later and make notes on why I highlighted them. Long gone are the days when I revered the pristine look of the printed page, over the page that I have made my own. I encourage my kids to do the same.

In thinking about how I’ve organized my reading notes in Obsidian, it occurred to me my methods could be greatly improved if there was a standardized protocol for a digital commonplace book. Alas, one doesn’t exist at this point.

But at least you now have the context for why I organize my reading notes the way I do–but I’m getting ahead of myself here. That will have to wait for another post.


  1. You should probably take a look at https://hypothes.is for web annotation, and the service readwise.io which will draw together annotations from a range of sources (inc Pocket, Instapaper and Kindle) and then export them, automatically to Evernote, Notion or RoamResearch or manually as markdown (which would work for Obsidian). Not affiliated to either service, just a happy user.

    1. Steven, thanks for calling this out. I’m reading about it and it looks promising. Not quite what I was describing in that it is not native to the OS or browser, but it gets pretty close, from what I’ve read so far.

  2. I’d like to second the recommendation for hypothes.is and readwise.io. I am always surprised at how much I like Readwise; it’s a >$5/month service, which I (unfairly but instinctively) chafe at, but really provides outsized value by being a simple-looking “dumb pipe” for unstandardized annotations from many sources. Of particular note here:

    It ingests highlights and annotations from many digital sources, including Kindle, Pocket, hypothes.is, arbitrary CSVs, and (!!!) OCR’d scans of real texts, which you can scan and highlight in the mobile app. Highlighting a picture of a paper book on a phone and annotating it honestly feels like magic. Maybe that has been around for a while but it’s new to me.
    It allows exporting of highlights and annotations with an HTTP API (https://readwise.io/api_deets) or an export to Markdown.

    The spaced-repetition re-reading engine is quite neat too. They sell it as “remember more of what you read”, but eh. Whatever. I use Anki for that. But I do enjoy just semi-randomly re-reading things I liked well enough to highlight. It’s even edifying at times.

  3. I completely forgot before I posted my comment. There is a whole little research and protocol-standardization world focusing on this kind of hypertext. The term of art is “web annotation” and there actually are a number of W3C standards on it:


    I have no idea what, if anything, implements it, nor can I speak to how it fits your description. But there are folks out there thinking about it.

  4. I recently switched from hypothes.is to worldbrain.io – it syncs with readwise too and annotation management is much more pleasant 🙂


This site uses Akismet to reduce spam. Learn how your comment data is processed.