Shaarli: a good migration target from Pinboard

To make a long story short, Pinboard owner Maciej Ceglowski milkshake-ducked himself with bizarre and out-of-nowhere hair-splitting regarding whether JK Rowling is a TERF. I have too many trans and non-binary people in my life to give my money willingly to someone like that. So I was suddenly, unexpectedly, and unhappily in the market for a new linkspam tool.

A quick recap of my user story: I keep (not to say “hoard”) links because I build readings for course syllabi out of them. I also share tag-based URLs with students and colleagues when inspiration strikes. New links get shunted to my Mastodon account, since apparently some folks find that useful. I need my linkspam tool to handle a LOT of links, give me a reasonably fast link-add mechanism, produce an RSS feed, let me combine tags (ideally with search) into a filtered linklist and share the resulting URL with others, and let me build such URLs from memory based on my knowledge of my own tag use.

I tried LinkAce first. I can say in its favor that it can be run on CPanel-enabled shared hosting, though I wouldn’t call it exactly easy to install. (I did manage it, and I’m a terrible awful useless sysadmin, so yeah.) I can say little else in its favor—it’s painfully slow, its link-add page is almost as infuriating as Raindrop’s (the tag lookup is just deadly bad), and it doesn’t have combined-tag filters or intelligible URLs. I have hopes for it, but as-is, I can’t make it work for what I need. To add insult to injury, its HTML export (in the de facto exchange format for link tools) wouldn’t work for me.

I was scared off Shaarli at first because of the documentation’s exhaustive list of server prerequisites and incantations. I shouldn’t have been! It installed quite easily on my webhost! Let’s say you want your Shaarli to live on the web at, and in a folder named “linkspam” on your webhost.

  1. In CPanel, make the subdomain, and point it to your linkspam folder. (Currently this is done via CPanel’s “Subdomains” menu item, but apparently this functionality is being moved to “Domains” shortly.)
  2. Go to CPanel’s “Domains” menu item and toggle “Force HTTPS Redirect” on for (Do it for all your other domains and subdomains while you’re at it. I’d missed a couple of mine!)
  3. Download the .zip file for the latest Shaarli release.
  4. Use CPanel’s File Manager (or SFTP, if you’re so inclined) to upload the .zip file to the folder one level up from your linkspam folder. (Trust me, okay?)
  5. In File Manager, delete your empty linkspam folder. (No, really, trust me!)
  6. Choose the Terminal menu item in CPanel. You’re in your home directory; if you need to, cd to the folder you put the .zip file in. Now type unzip sh and hit your tab key, which should autocomplete the filename for the Shaarli .zip file. Hit return.
  7. Go back to File Manager. Reload it. Find a folder named Shaarli, and rename it to linkspam. (Now you see where I was going with this! You could also do this in the Terminal with mv Shaarli linkspam.)
  8. Go to in your browser, and finish setup.

And that should be it. (On my to-do list: setting up an automatic backup for Shaarli’s “data” directory. Pretty sure I can do this directly in CPanel, via cron if necessary.)

I don’t have time for a full Shaarli report card, but here are a few things I’ve noticed in the couple of hours I’ve had it running:

  • Text search can be combined with tag filtering, which Raindrop can do but Pinboard can’t. Nifty, though it’d be more elegant with just one search bar and a parseable text trigger (probably #) for tags, as Raindrop does.
  • I don’t love Shaarli’s URLs—everything is query parameters—but I can live with them. They definitely copy-and-paste cleanly, unlike Raindrop’s or LinkAce’s, and the components are memorizable.
  • Bookmarklet is a tiny bit slow to load, but so was Pinboard’s sometimes; I can live with it. Bookmark entry is a breeze; Shaarli does not do LinkAce’s horrible horrible real-time(-ish) tag lookup.
  • OH MY GOSH, SEARCH OPERATORS! Phrase searching, minus-ing, wildcards! I will enjoy getting to know these.
  • The Wayback Machine integration is clever and useful, and will save me some time during syllabus construction. (Sometimes irreplaceable links 404.)
  • Shaarli could really use some CSS love. Maybe if I locate some spare time. One thing I would immediately do is get rid of the little tag icon next to tags. It’s purest visual clutter, but a simple display:none will take care of it.
  • What the hell is that QR code thing doing there, and why can’t I get rid of it?! Minor nit, it’s not all that obtrusive, but ugh.
  • I haven’t checked into its add-ons yet, but there seems to be a flourishing community, so I will.

So yeah, Shaarli is solid and useful and does what I need it to, and is not profiting any milkshake ducks. Fancy and pretty I don’t actually need. As for my Pinboard, I’m leaving it up for a bit until I’ve weaned my various syllabi and course assignments off it, and then it will go away.