Type Software
Date 2018-10-10
Tags research tool


  • Polar Bookshelf

Polar (formerly Polar Bookshelf) is a PDF (and a bit more) reader with a few exta functions: pagemarks, which allow you to mark certain areas of a document as read, and are useful for non-linear reading; simple annotations, including highlighting and comments; and the ability to create and review flashcards, including cloze cards.

Besides PDFs, Polar supports capturing webpages, similar to Zotero, and provides the same features when reading captured pages. With v2, Polar will support EPUBs as well.



The pagemark feature is very handy when reading non-linearly. For example, I use this feature when reading A Dictionary of Basic Japanese Grammar to mark those entries I've read and processed into my notes and flashcards.

I also use it when reading journal articles. I often read just the abstract, introduction, and results sections from a paper, and being able to mark those individually is convenient.

There are a few issues:

  • Two-column documents take a bit more work to mark, since pagemarks must be manually adjusted to cover the right area
  • Pagemarks have different 'modes', such as 'read' or 'ignored'--which is nice. However, they also have modes like 'table of contents' and 'references' which don't do anything special. Perhaps these will do something, in the future? Right now, it just seems like pagemarks are trying to do too many jobs.
  • A pagemark tints the area it covers, which can be a little annoying. This is different in Polar v2, but I'm not sure it's better.


Annotations in Polar are very simple: only text highlights, area highlights, and comments on those highlights are supported. These are a useful minimum, but it's a shame not to be able to include handwritten notes, either on the page or in the (virtual) margin.

Highlights can be reviewed like flashcards. I'll discuss this below.


Polar lets you give a document a title and (potentially hierarchical) tags, and flag it as archived or important, and that's it. No author, journal, or anything else. Improved metadata support has been promised for a future version.


You can create a flashcard from an annotation. These can be either standard front/back flashcards, or cloze deletion cards. These cards can either be synced to Anki (though the Anki sync isn't very reliable) or reviewed directly in Polar.

Additionally, highlights themselves can be reviewed like flashcards with no back. This 'reading review' is really very cool, and it's very handy for incremental reading. However, it does require you to make highlights stand lone, which isn't always practical. I like to make highlights of just a sentence or two containing a key fact, but without the context of the article from which the highlight is taken, these are often not useful. So I am left to choose between making excessively large highlights, in order to include relevant context, or simply suspending the card. A third option would be to make a flashcard that captures the idea, but not all types of highlight are amenable to this--sometimes I've just highlighted a striking turn of phrase or an impactful paragraph that I want to return to, and rewriting in my own words would miss the point.

The flashcard feature is very basic, and the scheduling doesn't feel right to me. At least early on, I get way too many reps of the same cards. Also, clozes with multiple clozes per card don't work correctly--though I presume this is a bug that will eventually be fixed. There's no automated burying of related cards, so I'll sometimes see a text highlight during my 'reading review', and then several cards in a row extracted from that same highlight during my 'flashcard review'.

In short, Polar is not remotely a replacement for Anki, at this stage.

Incremental reading

Polar positions itself as a tool for incremental reading, like SuperMemo--see, for example, A Guide to Incremental Reading for Students and Continuous Learners, from Polar's official blog.

The theory is that pagemarks plus flashcards do the job. In practice, I find that reading a large number of documents can be inconvenient. Unlike SuperMemo, Polar doesn't actually schedule the 'reading' phase of incremental reading, which means that it's easy for documents to 'get lost' from the reading queue.

Right now, I solve this by tagging a subset of documents with 'current', and then sorting those by least-recently-updated. This makes it reasonably possible to keep up with reading everything without letting things slip though the cracks.

However, I've got about 30 documents in my 'current' list at a time, and even with that small number, scheduling becomes a problem. If I'm reading Reasons and Persons, I need to see it frequently--say, every 1-3 days. If I'm reading We Have Root: Even More Advice from Schneier on Security, then they can be spaced much further apart--one essay per week or even month would be fine. And other documents might ideally have other schedules. At present, managing this means keeping track of the approximate priority of documents myself--I don't always want to pick the 'oldest' document to read. If I really had hundreds of things in my 'current' list, as the Polar blog suggests, then I'd never be able to manage the reading.

Web capture

In v1, web capture is very unreliable--many, or even most, pages that I attempt to capture just end up blank. v2 is meant to improve this. For now, I annotate web pages with Hypothesis, and I save WARCs of pages that I really need to keep locally.

If this is fixed in v2, then it'll be a very useful feature.


This is going to be in v2. In the current version (2.0 beta 13), trying to do much with EPUBs crashes Polar, so I haven't gotten to try it out, much. But once all that is worked out, I can see this being very nice--I might shift my fiction reading to Polar, in order to enjoy the ability to add highlights and comments.

Data portability

In Polar v1, all the data is stored in JSON files on disk, and I've written some scripts to extract information for my own use. v2 is online-only and this won't be an option, but I am told that an export feature will be added, so hopefully this won't be a problem going forward.


Certain bugs and limitations prevent me from using Polar as much as I'd like, but I am using it regularly when it's practical. I hope that many of these issues will be solved in v2. If web capture is fixed and data export is added, I can see Polar being a much larger part of my research process, in the future.

Name Role
Kevin Burton Developer


Relation Sources
Discussed in
  • A Guide to Incremental Reading for Students and Continuous Learners (2020-07-09)