Organizing and syncing pdf files in 2021: Mendeley, Calibre, and Zotero.
A small success story for my week has just wrapped up. There is a large, unpopular, academic publishing company named “Elsevier” that, up until now, I have had to accept as an intimate part of life. Several years ago they acquired the pdf organizing app I was using called “Mendeley“. Mendeley was fantastic really. It did everything you wanted it to do, like: rename pdf file names to a standard format like “<author>_<date>.pdf”, store them where you want them stored, automatically fill-out metadata by extracting the article doi, use browser-like tabs for the pdfs currently open, set the proportion of screen associated with an article versus its metadata, export pdfs with standard pdf annotations, easily switch citation styles for bibliography items, not cost anything, shrug it off when you go over your 2gb account storage, and have a basic phone app that syncs and reads the stored pdfs. So when I read that Elsevier had bought Mendeley, I had a good idea of what I wanted when I looked into alternatives: in particular, the “open” alternatives Zotero and Calibre. What I quickly saw with them, was that they were indeed promising efforts, but they were certainly not the polished F-35 of Mendeley.
First off, both of these programs made you use the system default program for opening pdfs: that is a bad sign. It means there is a disconnect between the program and how the program is being used: like, you’re not going to be searching your pdf comments using the pdf organizer’s search bar, never mind all the other ways a pdf might be annotated by a separate program that effectively becomes a second life for that pdf as there’s no guarantee your pdf organizer will understand or act on these annotations. But, with the use of some plugins and a bunch of reading of the Calibre and Zotero manuals, I could see that one day I would be back to use them for real.
I shrewdly put Calibre on “book pdf duty” since books were too large to keep in the Mendeley library. The basic functionality for organizing the library was there, and the <epub/mobi/pdf> conversion plugin always did me right whenever I would have to immediately kill an “epub” or “mobi” by converting it to pdf. However, it was absolutely out of contention as my daily driver for journal articles simply based on the fact that doi lookup based file renaming didn’t work out of the box, making new additions to the the library look like a list of “Unknown” and “<!DOWNLOADED FROM EBOK>” titles. Zotero was similarly advertised as an open project, but whatever it may have done better than Calibre, the account you make for syncing was limited to something like 300mb. As it was a problem to configure around this right out of the box I put it aside, but I did decide to keep it, as though it may have felt like riding a wildebeest at the time, it also felt closer to one day learning from Mendeley’s panther style.
Then a few months ago, my Mendeley Android app notified me that it was being discontinued soon, and then it was discontinued and would no longer open. Just like that. I spent years with this app.
Fast forward to this week, and I have now spent months living with the consequences of this amputation. I attempted to put the Calibre database in a Nextcloud folder to sync with my phone, but the weirdness of syncing the database folder while another device is also synced and might also be doing something else to that file was ultimately an insurmountable hurdle for the few hours I had to figure it out. Was the Calibre Android app really even a good replacement for the Mendeley Android app? A recent sense of urgency pushed me to look into the existence of self-hosting packages for Zotero that might work around the 300mb limitation. There were in fact several options I could see, like a Docker server or one that runs an npm server on port 8081, but as you can imagine I was stoked for neither of those options. And then I found the just released “Zotero beta“, which allows you to sync files privately without storage limits using “webdav” which my Nextcloud server is able to use. So I imported my Mendeley library, synced it to my phone, and in mere minutes Elsevier had finished expelling me as a user.