Technomancer tools: Managing and sharing bookmarks across multiple systems.

May 05 2018

If you have multiple systems (like I do), a problem you've undoubtedly run into is keeping your bookmarks in sync across every browser you use.  Of course, there are services that'll happily do this job on you behalf, but they're free, and we all know what free means.  If you're interested in being social with your link collection there are some social bookmarking services out there for consideration, including what's left of Delicious.  For many years I was a Delicious user (because I liked the idea of maintaining a public bookmark collection that could be useful to people), but Delicious got worse and worse every time it was sold to a new holding company.  I eventually gave up on Delicious, pulled my data out, and thought long and hard about how often anybody actually used my public link collection.  The answer wound up being "In all probability, not at all," largely because I never received any feedback at all, on-site or off.  Oh, well.

For a couple of years I used an application called Unmark to manage my link collection, and it did a decent enough job.  It also had some annoying quirks that, over time got farther and farther under my skin, and earlier this year I kicked Unmark in the head and started the search for a replacement.  Quirks like, about half the time bookmarks would be saved without any of the descriptions or tags I gave themNo search API.  The search function sucked so I couldn't plug my own search function in.  Eventually, the Unmark hosted service started redirecting to the Github repository, and then even that redirect went away.  Unmark hasn't been worked on in eight months, and Github tickets haven't been touched in about as long.  In short, Unmark seems dead as a doornail.

So I migrated my link collection to a new application called Shaarli, and I'm quite pleased with it.

Conceptually, Shaarli is pretty simple: It's an application running on a web server (it runs just fine on shared hosting, albeit a bit on the slow side) that you can store (or migrate) your bookmarks in.  When you store a bookmark in Shaarli, you can copy-and-paste or type a description of what it is, maybe add some comments or notes of your own, and add tags to categorize the link in your collection.  Shaarli is flexible enough that you can make your collection entirely private, you can make only certain links private if you want, use it as a microblog if you want, or use it as a note-taker or pastebin if you want.  Rather than gush about Shaarli, I'll just direct you to its list of features and move on.  There's a public demo running at https://demo.shaarli.org/ (username: demo, password: demo) that gets reset every day.

When I migrated my link collection to a new Shaarli install, I made an unpleasant discovery.  Shaarli was unable to import my exported bookmarks from Unmark.  After a little head scratching, I realized that Shaarli has a surprisingly decent REST API, and sat down to write a utility that reads in the file, converts each entry from Unmark's data format into Shaarli's, and stores it in a Shaarli instance.  It uses the Requests and PyJWT modules (the former to make HTTP requests easy, the latter because the Shaarli API uses JSON Web Tokens for authentication).  After a couple of hours of hacking my utility was churning away, and by the next morning my link collection had been transferred into my Shaarli instance.

And now, some of the things that I really like about Shaarli: First and foremost, it has a much more effective search feature, which checks not only tags but the full text stored with the link.  I already mentioned the API (which I need to do more with), but it also has RSS and ATOM feeds (which I still need to do something interesting with).  I didn't have to do anything weird to make the bookmarklets work with my instance, I was able to just drag and drop them into the toolbars of my web browsers.  If you want to, you can do a bulk replace of a tag you used with another one, or you can delete just that tag from every link that uses it if it's no longer useful to you (I've been getting a lot of mileage out of this feature).  Of course, you can export and re-import your links if you want.  I haven't done a whole lot with plugins yet, none of them really line up with what I use Shaarli for, but I have experimented with a few themes and by and large they're okay.  The Vintage theme is usable on desktops and mobile devices, and the Shaarli-2004licious-theme makes for a very snappy and responsive user experience.  I don't think I've tried Serious yet, and probably will soon.

You're probably wondering why this wasn't one of my hardcore writeups, dripping with details and suchlike.  The reason is because, when I was looking to replace Unmark with a different tool, I was specifically looking for something that did exactly what I wanted very well (store, search, and organize links) without a whole lot of stuff I didn't want or need (like putting things into categories that I couldn't change and didn't use anyway), and had a decent, usable API that I can eventually use to connect with my other stuff.  It's there when I need it, and it gets out of my way when I don't.  If you want to store bookmarks in such a way that you can access them from any browser you happen to be on (even a mobile device's browser), I recommend giving Shaarli a try.