Selecting a bookmarks manager

Friday, Jan 18, 2019

Selecting a bookmarks manager

I stopped entering bookmarks into any kind of system about the time of the Delicious demise (Although I should still refer to it with its original URL).

What I do nowadays is just leave dozens and dozens of open tabs on my browsers (both my main Firefox browser in the desktop and Chrome on mobile), until it gets to be too much, and then I dump them into a markdown file in my vimwiki, using either the Export Tabs URLs add-on or the TabAttack extension, respectively.

Eventually I re-visit those sites, take a few notes about each one, and move them to their corresponding area of interest in the wiki.

I’ve decided to use a self-hosted option to replace this cumbersome process, mostly to allow me to make those brief notes, or assign tags to each bookmark while I’m on my phone.


The Awesome self-hosted page gives me three areas I could look at: Note-taking apps (like Turtl or Meemo), Read-it-later apps (like Wallabag or Nunux), or Link Sharing and Bookmarks proper (like Shaarli or Shiori).

Brief notes on features


Full-featured; Android app, Firefox and Chromebook extensions. Allows separate spaces. Shares can be of text, picture, or bookmark type; it’s not clear if I can mix and match (i.e. add comments to a bookmark).

Attractive grid layout.


Perhaps too simple. Not very attractive layout. Allows links and comments, and tagged notes.


Inspired by Evernote. Has a web clipper. Desktop app or terminal interface, or mobile app; no web ui.


Very attractive layout, similar to Pinterest. Tags, fetches webpages when saving. Built on Django. Very little documentation.


Minimal interface a little unattractive. Very focused on bookmarks and their description and tags. Interesting features: one button for showing a QR code with the link; one button to look up the URL in the WayBack Machine (very useful for common dead links); filter all URLs that haven’t been tagged. Android app, bookmarklet and browser plugin. Private or public notes. Condensed or expanded view. Maybe looks a bit better on mobile.


Command line or web. Single binary (Go) plus SQLite database. Tags. Simple but attractive interface. List and grid views. Light and dark modes. Caches bookmarks, downloading an image, an excerpt, and a simplified view of the page. Powerful CLI: add tags, list bookmarks with a tag, etc.


Attractive interface. Mobile apps, browser plugins, interfaces with RSS reader. API. Extracts content and displays it in easy-to-read format.

Nunux keeper

Command line interface or nice web app. Colored tags. Extracting the page content is optional (allows just bookmarking with a screenshot or downloading the content and images). CLI doesn’t seem too powerful.

Trial installation

I tried to install Turtl, getting the server to install, but I had some trouble with the Web Javascript client: I could get it to show the little turtle shell icon, and a black bar, but nothing else. Documentation was pretty sparse, and all of the comments and tutorials I could find were for an old, Lisp-based version.

I then installed both Shaarli (a traditional PHP app), and Shiori (a new-fangled single-file Go app) on their own LXC containers. Although Shiori looks more modern and polished, there was a show-stopper: its inability to edit a URL once entered. I sometimes edit URLs to remove referal attributes, or to replace a link to an aggregator with one to the actual site.


I don’t need the complexity of the read-it-later apps, or the full features of the evernote-replacements; I could use Pinry as a self-hosted Pinterest replacement, eventually (not looking forward to trying to install it, due to its lack of documentation).

I ended up putting Shaarli into production, once I imported all links I had lying around, and fixed the few tags I’d already assigned to them. It has just the right mix of features that I need in order to clean up the backlog of articles I want to read, or reference material I need to sort into their place in my personal wiki. And I found out a nice theme that could replace the current one, whenever I find time to update.